modified: app.py
modified: templates/quiz_buzzer_multiplayer.html
This commit is contained in:
15
app.py
15
app.py
@@ -468,6 +468,21 @@ def reset_quiz(playlist_id):
|
|||||||
return redirect(url_for('quiz', playlist_id=playlist_id, mode=next_mode))
|
return redirect(url_for('quiz', playlist_id=playlist_id, mode=next_mode))
|
||||||
return redirect(url_for('playlists'))
|
return redirect(url_for('playlists'))
|
||||||
|
|
||||||
|
@app.route("/update_player_score/<playlist_id>", methods=["POST"])
|
||||||
|
def update_player_score(playlist_id):
|
||||||
|
"""Aktualisiert den Score eines einzelnen Spielers in der Session."""
|
||||||
|
data = request.json
|
||||||
|
player_id = data.get('player_id') # 1-basiert
|
||||||
|
delta = data.get('delta', 0)
|
||||||
|
if not player_id:
|
||||||
|
return {"error": "Missing player_id"}, 400
|
||||||
|
key = f'player_scores_{playlist_id}'
|
||||||
|
player_scores = session.get(key, [0, 0, 0, 0])
|
||||||
|
player_scores[player_id - 1] += delta
|
||||||
|
session[key] = player_scores
|
||||||
|
session.modified = True
|
||||||
|
return {"success": True, "new_score": player_scores[player_id - 1]}
|
||||||
|
|
||||||
@app.route("/reset_scores/<playlist_id>")
|
@app.route("/reset_scores/<playlist_id>")
|
||||||
def reset_scores(playlist_id):
|
def reset_scores(playlist_id):
|
||||||
"""Reset nur die Scores, aber behalte gespielte Tracks."""
|
"""Reset nur die Scores, aber behalte gespielte Tracks."""
|
||||||
|
|||||||
@@ -688,10 +688,19 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function applyScoreToServer(playerId, delta) {
|
||||||
|
return fetch('/update_player_score/{{ playlist_id }}', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: { 'Content-Type': 'application/json' },
|
||||||
|
body: JSON.stringify({ player_id: playerId, delta: delta })
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function continueGame() {
|
function continueGame() {
|
||||||
// Wende Minuspunkte an
|
// Wende Minuspunkte an (lokal und auf Server)
|
||||||
players[currentBuzzer - 1].score += pendingPoints;
|
players[currentBuzzer - 1].score += pendingPoints;
|
||||||
updateScoreboard();
|
updateScoreboard();
|
||||||
|
applyScoreToServer(currentBuzzer, pendingPoints);
|
||||||
|
|
||||||
// Reset für nächsten Buzzer
|
// Reset für nächsten Buzzer
|
||||||
document.getElementById('answerSection').classList.remove('active');
|
document.getElementById('answerSection').classList.remove('active');
|
||||||
@@ -718,9 +727,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function showSolution() {
|
function showSolution() {
|
||||||
// Wende Minuspunkte an
|
// Wende Minuspunkte an (lokal und auf Server)
|
||||||
players[currentBuzzer - 1].score += pendingPoints;
|
players[currentBuzzer - 1].score += pendingPoints;
|
||||||
updateScoreboard();
|
updateScoreboard();
|
||||||
|
applyScoreToServer(currentBuzzer, pendingPoints);
|
||||||
|
|
||||||
const resultContainer = document.getElementById('resultContainer');
|
const resultContainer = document.getElementById('resultContainer');
|
||||||
resultContainer.innerHTML = `
|
resultContainer.innerHTML = `
|
||||||
|
|||||||
Reference in New Issue
Block a user