diff --git a/sockets/arena.socket.js b/sockets/arena.socket.js index 124d994..fba52d6 100644 --- a/sockets/arena.socket.js +++ b/sockets/arena.socket.js @@ -162,7 +162,9 @@ function tryMatchmaking(io, newSocketId) { for (const [id, entry] of waitingPool) { if (id === newSocketId) continue; - if (Math.abs(entry.player.level - challenger.player.level) <= LEVEL_RANGE) { + const diff = Math.abs(entry.player.level - challenger.player.level); + // Match nur wenn BEIDE Spieler die Leveldifferenz akzeptieren + if (diff <= challenger.levelRange && diff <= entry.levelRange) { waitingPool.delete(newSocketId); waitingPool.delete(id); @@ -565,7 +567,11 @@ function registerArenaHandlers(io, socket) { name: playerData.name, level: Number(playerData.level) || 1, }; - waitingPool.set(socket.id, { socket, player }); + // levelRange vom Client übernehmen (5 oder 10), Standard = 5 + const levelRange = [5, 10].includes(Number(playerData.levelRange)) + ? Number(playerData.levelRange) + : LEVEL_RANGE; + waitingPool.set(socket.id, { socket, player, levelRange }); socket.emit("queue_status", { status: "waiting", poolSize: waitingPool.size,