diff --git a/intern/statistik/index.php b/intern/statistik/index.php index 8cb3fad..170337c 100644 --- a/intern/statistik/index.php +++ b/intern/statistik/index.php @@ -232,6 +232,40 @@ if ($httpKey !== '') { } else { $promoListError = 'Die interne Codeverwaltung ist noch nicht mit Nakama verbunden.'; } + +$diagnosticRows = null; +$diagnosticReports = []; +$diagnosticError = ''; +$diagnosticRound = strtolower(trim((string) ($_GET['round_id'] ?? ''))); +if ($diagnosticRound !== '' && !preg_match('/^[a-f0-9]{16}$/D', $diagnosticRound)) $diagnosticRound = ''; +if ($httpKey !== '') { + $diagnosticRpc = preg_replace('~/private_stats$~', '/list_online_diagnostics', (string) ($config['nakama_rpc_url'] ?? '')); + if (is_string($diagnosticRpc) && $diagnosticRpc !== (string) ($config['nakama_rpc_url'] ?? '')) { + $diagnosticUrl = $diagnosticRpc . '?http_key=' . rawurlencode($httpKey) . '&unwrap'; + $diagnosticResponse = fetchJson($diagnosticUrl, 'POST', '{}'); + if (is_array($diagnosticResponse) && isset($diagnosticResponse['payload']) && is_string($diagnosticResponse['payload'])) { + $decoded = json_decode($diagnosticResponse['payload'], true); + if (is_array($decoded)) $diagnosticResponse = $decoded; + } + if (is_array($diagnosticResponse) && isset($diagnosticResponse['reports']) && is_array($diagnosticResponse['reports'])) { + $diagnosticRows = $diagnosticResponse['reports']; + if ($diagnosticRound !== '') { + $detailResponse = fetchJson($diagnosticUrl, 'POST', json_encode(['round_id' => $diagnosticRound], JSON_THROW_ON_ERROR)); + if (is_array($detailResponse) && isset($detailResponse['payload']) && is_string($detailResponse['payload'])) { + $decoded = json_decode($detailResponse['payload'], true); + if (is_array($decoded)) $detailResponse = $decoded; + } + if (is_array($detailResponse) && isset($detailResponse['reports']) && is_array($detailResponse['reports'])) { + $diagnosticReports = $detailResponse['reports']; + } else { + $diagnosticError = 'Die ausgewählte Runde konnte nicht geladen werden.'; + } + } + } else { + $diagnosticError = 'Die Online-Diagnose konnte nicht geladen werden. Servermodul eventuell noch nicht aktualisiert.'; + } + } +} ?> Void Bastion – Interne Statistik

GERGAMES · NICHT ÖFFENTLICH

Void Bastion Statistik

Abmelden
Downloads insgesamt
Downloads aktuelles Release
Registrierte Piloten
Heute aktive Piloten
Windows-Downloads
Android-Downloads
-

Die Downloadwerte stammen direkt aus den Gitea-Release-Anhängen und werden alle fünf Minuten neu geladen.

Die private Nakama-Statistik ist noch nicht mit dem HTTP-Schlüssel verbunden.

Letzte Spieleraktualisierung:

Diese Seite ist nicht verlinkt, von Suchmaschinen ausgeschlossen und verlangt eine Anmeldung. Es werden ausschließlich zusammengefasste Werte dargestellt.

+

Die Downloadwerte stammen direkt aus den Gitea-Release-Anhängen und werden alle fünf Minuten neu geladen.

Die private Nakama-Statistik ist noch nicht mit dem HTTP-Schlüssel verbunden.

Letzte Spieleraktualisierung:

Diese Seite ist nicht verlinkt, von Suchmaschinen ausgeschlossen und verlangt eine Anmeldung. Spielerzahlen sind zusammengefasst; technische Rundenberichte sind nur hier einsehbar.

+

Online-Diagnose

Die beiden PCs senden ihre technischen Messwerte am Ende einer Online-Partie automatisch mit derselben Rundenkennung. Berichte sind maximal 14 Tage relevant; Namen und Raumcodes werden hier nicht gespeichert.

+

Noch keine Verbindung zur privaten Online-Diagnose.

Noch keine Berichte aus der neuen Spielversion vorhanden.

RundeSeiteZeitpunktVersionMessungen
+

Runde

Für diese Kennung liegen noch keine Berichte vor.

Seite ·

UTCSpielstände/sAbstand p95 / maxTick-SprüngeWarteschlange verworfenBildaussetzerGegner / Türme
/ ms (max ms) /
Einzelereignisse anzeigen
UTCEreignisDauerServer-Tick
ms

Zur Übersicht

Freischaltcodes erstellen

Codes und Bemerkungen werden ausschließlich in der geschützten Serverablage verwaltet. Der Klartext ist nur in diesem angemeldeten Bereich sichtbar.

Code erstellt: · offen · maximal Einlösungen ·
diff --git a/privacy.html b/privacy.html index 6e546ef..ccc96e9 100644 --- a/privacy.html +++ b/privacy.html @@ -22,6 +22,7 @@

4. GerGames-Onlinekonto und Nakama

Für Ranglisten und Online-Multiplayer werden eine zufällige Konto-ID, Spielername, verknüpfte Anmeldeanbieter, Bestenlistenwerte und für laufende Partien erforderliche Spielzustände an den von GerGames betriebenen Nakama-Server übertragen. Zusätzlich fallen technisch erforderliche Verbindungs- und Sicherheitsdaten wie IP-Adresse und Zeitstempel an. Die Verarbeitung ist zur Bereitstellung der Onlinefunktionen erforderlich; Rechtsgrundlage ist Art. 6 Abs. 1 lit. b DSGVO. Sicherheitsprotokolle können auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO verarbeitet werden.

Für eine interne, nicht öffentliche Nutzungsstatistik werden außerdem die pseudonyme Konto-ID, Plattform, App-Version sowie der erste und letzte Aktivitätstag verarbeitet. Daraus werden ausschließlich zusammengefasste Spielerzahlen gebildet. Die Statistik dient der technischen Planung, Fehlererkennung und Weiterentwicklung des Spiels. Rechtsgrundlage ist Art. 6 Abs. 1 lit. f DSGVO; unser berechtigtes Interesse liegt im sicheren und bedarfsgerechten Betrieb des Spiels. Es werden dafür keine Analyse-Cookies und kein externer Analysedienst eingesetzt.

+

Zur Fehleranalyse im Online-Multiplayer übermitteln neuere Spielversionen am Ende einer Partie automatisch technische Messwerte beider Geräte an den eigenen Nakama-Server. Dazu gehören unter anderem Abstände und Größe empfangener Spielzustände, ausgelassene Server-Ticks, Warteschlangen und lokale Bildaussetzer. Beide Berichte werden über eine pseudonyme Rundenkennung zusammengeführt. Im Bericht werden keine Chatnachrichten, IP-Adressen, Spielernamen, Raumcodes oder vollständigen Partieverläufe gespeichert; die Zugriffsprüfung nutzt vorübergehend eine getrennte, serverprivate Teilnehmerzuordnung. Berichte und Zuordnung werden 14 Tage nach Erstellung beim nächsten Diagnoseabruf oder -upload bereinigt. Die Messung dient der Fehlersuche und Stabilisierung des Onlinebetriebs.

Kontodaten werden grundsätzlich bis zur Löschung des Kontos gespeichert. Kurzlebige Matchdaten werden nach Ende beziehungsweise Ablauf der Partie nicht dauerhaft als vollständige Partieaufzeichnung gespeichert. Datenbank-Sicherungen werden täglich erstellt und nach 14 Tagen automatisch überschrieben. Gesetzlich erforderliche oder zur Missbrauchsabwehr zwingend benötigte Daten können im erforderlichen Umfang länger aufbewahrt werden.

5. Apple, Google und Plattformkonten

Wenn du später freiwillig „Mit Apple anmelden“, Game Center oder Google Play Games verknüpfst, übermittelt der jeweilige Plattformanbieter eine technische Kennung und gegebenenfalls einen dort gewählten Anzeigenamen. Zweck ist die Anmeldung und Wiederherstellung desselben GerGames-Kontos auf mehreren Geräten. Es gelten zusätzlich die Datenschutzbestimmungen von Apple beziehungsweise Google. Eine Verknüpfung findet erst nach einer aktiven Auswahl statt.