szgtjkmrt
This commit is contained in:
parent
9603e21917
commit
c3a1ddfc85
@ -359,29 +359,17 @@ function registerTeamModeHandlers(io, socket, mode) {
|
||||
});
|
||||
}
|
||||
|
||||
/* ── Helper: Event an beide Spieler senden ── */
|
||||
/* ── Helper: Event an beide Spieler senden (Room-Broadcast) ── */
|
||||
function emitToMatch(io, matchId, event, data) {
|
||||
// Immer Room-Broadcast (zuverlässigste Methode)
|
||||
io.to("arena_" + matchId).emit(event, data);
|
||||
// Zusätzlich direkt an bekannte Socket-IDs falls vorhanden
|
||||
const room = io._arenaRooms?.get(matchId);
|
||||
if (room) {
|
||||
["player1", "player2"].forEach((slot) => {
|
||||
if (room.sockets[slot]) {
|
||||
io.to(room.sockets[slot]).emit(event, data);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function emitToOpponent(io, matchId, senderSlot, event, data) {
|
||||
const opponentSlot = senderSlot === "player1" ? "player2" : "player1";
|
||||
// Direkt an Gegner-Socket
|
||||
const room = io._arenaRooms?.get(matchId);
|
||||
if (room?.sockets[opponentSlot]) {
|
||||
io.to(room.sockets[opponentSlot]).emit(event, data);
|
||||
}
|
||||
// Kein Room-Broadcast hier (Sender würde eigene Karten nochmal empfangen)
|
||||
}
|
||||
|
||||
/* ═══════════════════════════════════════════════════════════
|
||||
|
||||
@ -883,16 +883,12 @@
|
||||
});
|
||||
|
||||
/* ── Server: Zugwechsel ──────────────────────────────── */
|
||||
let lastTurnChangeTs = 0;
|
||||
socket.on("turn_change", (data) => {
|
||||
// Board synchronisieren falls mitgeliefert
|
||||
// Sicherheits-Fallback: Overlay entfernen falls noch vorhanden
|
||||
document.getElementById("board-lock-overlay")?.remove();
|
||||
document.getElementById("connecting-overlay")?.remove();
|
||||
|
||||
if (data.boardSync) applyBoardSync(data.boardSync);
|
||||
|
||||
// Duplikat-Schutz: gleiches Event innerhalb 1 Sekunde nur einmal verarbeiten
|
||||
const now = Date.now();
|
||||
if (now - lastTurnChangeTs < 1000) return;
|
||||
lastTurnChangeTs = now;
|
||||
|
||||
const nowMyTurn = data.activeSlot === mySlot;
|
||||
console.log("[1v1] turn_change:", data.activeSlot, "| ich:", mySlot, "| meinZug:", nowMyTurn);
|
||||
setTurnState(nowMyTurn);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user