Startseite: Messer-Server-Liste entfernt, sie steht jetzt in der Lobby bei Messerrunde
This commit is contained in:
1 parent
fb96fb5d08
commit
af2ecf7a3a
2 files changed
+2
-37
No files matched your search
@@ -283,7 +283,7 @@ Jeder Host braucht eigene Spieldateien (rund 60 bis 90 GB). Die Ports müssen au
|
|||||||
Im Admin-Bereich (Einstellungen → Gameserver → Messer-Server) startet „Messer-Server starten“ einen Gameserver, der keinem Match gehört und dauerhaft läuft. Teams verbinden sich, spielen eine Messerrunde und gehen wieder.
|
Im Admin-Bereich (Einstellungen → Gameserver → Messer-Server) startet „Messer-Server starten“ einen Gameserver, der keinem Match gehört und dauerhaft läuft. Teams verbinden sich, spielen eine Messerrunde und gehen wieder.
|
||||||
|
|
||||||
- Modus wählbar: **Competitive 5v5** (12 Plätze, Maps aus dem Competitive-Pool) oder **Wingman 2v2** (6 Plätze, Maps aus dem Wingman-Pool).
|
- Modus wählbar: **Competitive 5v5** (12 Plätze, Maps aus dem Competitive-Pool) oder **Wingman 2v2** (6 Plätze, Maps aus dem Wingman-Pool).
|
||||||
- Offen, ohne Passwort, sichtbar im LAN-Reiter von Steam (`Maxlan | Messer 1 5v5 (Seitenwahl)`) und auf der Startseite mit „Verbinden“.
|
- Offen, ohne Passwort, sichtbar im LAN-Reiter von Steam (`Maxlan | Messer 1 5v5 (Seitenwahl)`). In der Lobby eines Matches mit Messerrunde stehen die freien Messer-Server mit „Verbinden“.
|
||||||
- Nur Messer, kein Geld, eine Runde. Vorher läuft eine Aufwärmphase zum Verbinden (`KNIFE_WARMUP_SECONDS`, Standard 90). Nach der Runde startet das Spiel von selbst neu (`mp_match_end_restart`). Wird der Server leer, setzt die App ihn zusätzlich zurück.
|
- Nur Messer, kein Geld, eine Runde. Vorher läuft eine Aufwärmphase zum Verbinden (`KNIFE_WARMUP_SECONDS`, Standard 90). Nach der Runde startet das Spiel von selbst neu (`mp_match_end_restart`). Wird der Server leer, setzt die App ihn zusätzlich zurück.
|
||||||
- Fällt ein Messer-Server aus, startet die App ihn neu, höchstens fünfmal in Folge. Danach steht er auf „ausgefallen“ und lässt sich im Admin-Bereich neu starten.
|
- Fällt ein Messer-Server aus, startet die App ihn neu, höchstens fünfmal in Folge. Danach steht er auf „ausgefallen“ und lässt sich im Admin-Bereich neu starten.
|
||||||
- Knöpfe pro Server: „Runde starten“ (Aufwärmphase sofort beenden), „Zurücksetzen“, „Neu starten“ (neuer Container), „Entfernen“.
|
- Knöpfe pro Server: „Runde starten“ (Aufwärmphase sofort beenden), „Zurücksetzen“, „Neu starten“ (neuer Container), „Entfernen“.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { useEffect, useState } from 'react';
|
import { useState } from 'react';
|
||||||
import { Link, useNavigate } from 'react-router-dom';
|
import { Link, useNavigate } from 'react-router-dom';
|
||||||
import { api } from '../lib/api.js';
|
import { api } from '../lib/api.js';
|
||||||
import { FORMAT_LABEL, serverLabel, timeAgo } from '../lib/labels.js';
|
import { FORMAT_LABEL, serverLabel, timeAgo } from '../lib/labels.js';
|
||||||
@@ -30,7 +30,6 @@ export default function Overview() {
|
|||||||
|
|
||||||
<Steps current={step} />
|
<Steps current={step} />
|
||||||
|
|
||||||
<KnifeServers />
|
|
||||||
|
|
||||||
{matches === null ? (
|
{matches === null ? (
|
||||||
<p className="muted">Lade Matches …</p>
|
<p className="muted">Lade Matches …</p>
|
||||||
@@ -253,37 +252,3 @@ function CodeTicket() {
|
|||||||
</form>
|
</form>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Offene Messer-Server für die Seitenwahl, zum direkten Verbinden. */
|
|
||||||
function KnifeServers() {
|
|
||||||
const [servers, setServers] = useState([]);
|
|
||||||
useEffect(() => {
|
|
||||||
let alive = true;
|
|
||||||
const load = () => api('/knife-servers').then((res) => alive && setServers(res.servers)).catch(() => {});
|
|
||||||
load();
|
|
||||||
const t = setInterval(load, 10_000);
|
|
||||||
return () => {
|
|
||||||
alive = false;
|
|
||||||
clearInterval(t);
|
|
||||||
};
|
|
||||||
}, []);
|
|
||||||
if (servers.length === 0) return null;
|
|
||||||
return (
|
|
||||||
<section className="group knife-public">
|
|
||||||
<h2>Messer-Server für die Seitenwahl <span className="count">{servers.length}</span></h2>
|
|
||||||
<p className="muted small">Ohne Passwort, auch im LAN-Reiter von Steam. Nach eurer Messerrunde setzt sich der Server selbst zurück.</p>
|
|
||||||
<ul className="knife-list">
|
|
||||||
{servers.map((k) => (
|
|
||||||
<li key={k.id}>
|
|
||||||
<strong>{k.name}</strong>
|
|
||||||
{k.modeShort && <span className="knife-mode">{k.modeShort}</span>}
|
|
||||||
<span className="muted small">{k.mapName}</span>
|
|
||||||
<span className="small">{k.playerCount ? `${k.playerCount} Spieler` : 'frei'}</span>
|
|
||||||
<code>{k.connect}</code>
|
|
||||||
<a className="btn btn-sm" href={k.steamUrl}>Verbinden</a>
|
|
||||||
</li>
|
|
||||||
))}
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
Reference in new issue
Block a user