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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
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 |
# | Time | Memory | Function | Location |
1 | 0.0001 | 359336 | {main}( ) | .../index.php:0 |
2 | 0.0068 | 387816 | include( '/var/www/html/pages/wiki.php' ) | .../index.php:48 |
3 | 0.0132 | 519216 | includestring( ) | .../wiki.php:482 |
4 | 0.0138 | 590840 | eval( '?>
$session["log_date"], "type" => "start"];
$timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"];
}
}
usort($timestamps, function ($a, $b) {
if ($a["timestamp"] == $b["timestamp"]) {
return $a["type"] == "end" ? -1 : 1;
}
return $a["timestamp"] - $b["timestamp"];
});
$currentPlayers = 0;
$maxConcurrentPlayers = 0;
foreach ($timestamps as $timestamp) {
if ($timestamp["type"] == "start") {
$currentPlayers++;
$maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers);
} else {
$currentPlayers--;
}
}
return $maxConcurrentPlayers;
}
class DateIdConverter {
private const REFERENCE_DATE = '2019-10-30';
private const INITIAL_ID = 0;
public static function convertDateToId($date) {
$referenceDate = new DateTime(self::REFERENCE_DATE);
$givenDate = new DateTime($date);
$daysDifference = $referenceDate->diff($givenDate)->days;
return self::INITIAL_ID + $daysDifference;
}
public static function convertIdToDate($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->format('Y-m-d');
}
public static function convertIdToTimestamp($id) {
$daysDifference = $id - self::INITIAL_ID;
$referenceDate = new DateTime(self::REFERENCE_DATE);
$newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D'));
return $newDate->getTimestamp() * 1000; // Convert to milliseconds
}
public static function getCurrentDateId() {
$currentDate = new DateTime();
$referenceDate = new DateTime(self::REFERENCE_DATE);
$daysDifference = $referenceDate->diff($currentDate)->days;
return self::INITIAL_ID + $daysDifference;
}
}
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000); // Convertir en secondes
$minutes = floor($seconds / 60); // Calculer les minutes
$hours = floor($minutes / 60); // Calculer les heures
$remainingMinutes = $minutes % 60; // Calculer les minutes restantes
$remainingSeconds = $seconds % 60; // Calculer les secondes restantes
$formattedTime = "$hours h $remainingMinutes m $remainingSeconds s";
return $formattedTime;
}
$stats = [];
$playerCount = [];
$totalPlayHours = [];
$filter = [];
$invalid = 1000000000;
$minDay = 0;
$maxDay = $invalid;
if(isset($_GET["interval"]))
{
$intervalStr = $_GET["interval"];
$arr = explode("/", $intervalStr);
$one = DateIdConverter::convertDateToId($arr[0]);
$two = DateIdConverter::convertDateToId($arr[1]);
$minDay = min($one, $two);
$maxDay = max($one, $two);
}
$filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}";
$days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]);
function getDay($previous, $row)
{
$infos = [];
$infos["username"] = $row["username"];
$infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"];
$infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0);
$infos["sessions"] = $row["sessions"];
$totalTime = isset($previous) ? $previous["total_time"] : 0;
foreach ($row["sessions"] as $sess)
{
$totalTime += $sess["last_seen"] - $sess["log_date"];
}
$infos["total_time"] = $totalTime;
return $infos;
}
foreach ($days as $day)
{
if($day != null)
{
//$stat = [];
$username = $day["username"];
$dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day);
$singleDayInfos = getDay(null, $day);
$stats[$username] = $dayInfos;
$dayId = $day["day_id"];
if(!isset($playerCount[$dayId]))
{
$playerCount[$dayId]["totalplayers"] = 0;
$playerCount[$dayId]["days"] = [];
}
$playerCount[$dayId]["totalplayers"] ++;
$strictDay = ["sessions" => $dayInfos["sessions"]];
$totalPlayHours[$dayId] = (
isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0)
+ ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60;
array_push($playerCount[$dayId]["days"], $strictDay);
}
else
{
$hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0);
}
}
//usort($stats, "cmp");
function cmpActiveTime($a, $b)
{
return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"]));
}
//usort($playerCount, "cmp");
usort($stats, "cmpActiveTime");
?>
$value)
{
$moyenneNombre ++;
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$d = findMaxConcurrentPlayers($value["days"]);
$moyenneTotal += $d;
$points[] = [$tmsp, $d];
}
echo $tmsp . " ";
$points[] = [$i - (24 * (60 * 60 * 1000)), 0];
$i = 10000000000000;
foreach($totalPlayHours as $key => $value)
{
$tmsp = DateIdConverter::convertIdToTimestamp($key);
if($tmsp < $i)
{
$i = $tmsp;
}
$points2[] = [$tmsp, $value];
}
echo $tmsp . " ";
$points2[] = [$i - (24 * (60 * 60 * 1000)), 0];
$jsonChart = ["max_players" => $points];
$jsonChart2 = ["max_players" => $points2];
?>
Statistiques d'activité
Définir l'interval:
Définir
Filtres par défaut:
Depuis toujours
Depuis 7 jours
Depuis 30 jours
Ce mois
Cette semaine
Aujourd'hui
Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.
$value)
{
$totalHours += $value;
}
?>
Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.
$value)
{
echo $key . "/ total: " . $value["totalplayers"] . " ";
//var_dump($value["days"]);
echo findMaxConcurrentPlayers($value["days"]);
echo " ";
}*/
?>
Skin |
Position |
Personnage |
Pseudonyme |
Temps Actif |
Temps AFK |
Temps Mont-Cristal |
; ?>) |
|
getPlayerData()->getString("keldaria:roleplayname"); ?> |
"> |
|
|
|
) | .../wiki.php:45 |
0 h 0 m 0 s |