// ==UserScript==
// @name LMVZ Digital Hack Ultimate
// @namespace http://tampermonkey.net/
// @version 2024-03-12
// @description Lässt jedes Quiz gelöst aussehen.
// @author Claimingnine
// @match https://*.lmvz.ch/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=lmvz.ch
// @grant none
// ==/UserScript==
let roundCounter = 1426;
// Create UI Panel
function createUI() {
// Create toggle button
const toggleBtn = document.createElement('div');
toggleBtn.id = 'lmvz-toggle-btn';
toggleBtn.innerHTML = '🎮';
toggleBtn.style.cssText = `
position: fixed;
top: 20px;
right: 20px;
width: 50px;
height: 50px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 24px;
cursor: pointer;
z-index: 10000;
box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4);
transition: all 0.3s ease;
`;
toggleBtn.onmouseover = () => {
toggleBtn.style.transform = 'scale(1.1)';
toggleBtn.style.boxShadow = '0 6px 20px rgba(102, 126, 234, 0.6)';
};
toggleBtn.onmouseout = () => {
toggleBtn.style.transform = 'scale(1)';
toggleBtn.style.boxShadow = '0 4px 15px rgba(102, 126, 234, 0.4)';
};
// Create control panel
const panel = document.createElement('div');
panel.id = 'lmvz-control-panel';
panel.style.cssText = `
position: fixed;
top: 80px;
right: 20px;
width: 320px;
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(10px);
border-radius: 16px;
padding: 20px;
z-index: 9999;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
display: none;
animation: slideIn 0.3s ease;
`;
panel.innerHTML = `
Script Active & Running
Round Counter:
${roundCounter}
Status:
Auto-solving enabled
`;
// Add to page
document.body.appendChild(toggleBtn);
document.body.appendChild(panel);
// Toggle functionality
let isOpen = false;
toggleBtn.addEventListener('click', () => {
isOpen = !isOpen;
panel.style.display = isOpen ? 'block' : 'none';
toggleBtn.style.transform = isOpen ? 'rotate(90deg)' : 'rotate(0deg)';
});
// Infinity button
document.getElementById('lmvz-infinity-btn').addEventListener('click', () => {
roundCounter = "∞";
document.getElementById('lmvz-round-display').textContent = roundCounter;
});
// Update round display
setInterval(() => {
const display = document.getElementById('lmvz-round-display');
if (display) {
display.textContent = roundCounter;
}
}, 500);
// Make panel draggable
let isDragging = false;
let currentX;
let currentY;
let initialX;
let initialY;
panel.addEventListener('mousedown', (e) => {
if (e.target === panel || e.target.className === 'lmvz-header') {
isDragging = true;
initialX = e.clientX - panel.offsetLeft;
initialY = e.clientY - panel.offsetTop;
panel.style.cursor = 'move';
}
});
document.addEventListener('mousemove', (e) => {
if (isDragging) {
e.preventDefault();
currentX = e.clientX - initialX;
currentY = e.clientY - initialY;
panel.style.left = currentX + 'px';
panel.style.top = currentY + 'px';
panel.style.right = 'auto';
}
});
document.addEventListener('mouseup', () => {
isDragging = false;
panel.style.cursor = 'default';
});
}
// Initialize UI when DOM is ready
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', createUI);
} else {
createUI();
}
function start() {
function updateRoundCounter() {
roundCounter++;
}
setInterval(updateRoundCounter, 100);
document.addEventListener('keydown', function(event) {
if (event.key === 'h') {
roundCounter = "∞";
}
});
var buttons = document.querySelectorAll('.buttons.exercise');
buttons.forEach(function(button) {
var score = button.getAttribute('data-quiz-score');
if (score === '' || score === '0' || score === '1' || score === '2' || !score) {
button.setAttribute('data-quiz-score', '2');
}
});
var element = document.querySelector('.col-auto img[src="https://004.lmvz.ch/disdonc/images/hand-bad.svg"]');
if (element) {
element.setAttribute('src', 'https://004.lmvz.ch/disdonc/images/hand-good.svg');
}
var elements = document.querySelectorAll('.point.-question.-answered.-wrong');
elements.forEach(function(element) {
element.classList.remove('-wrong');
element.classList.add('-correct');
});
var feedbackContainer = document.querySelector('[js="feedback-container"]');
if (feedbackContainer) {
feedbackContainer.classList.remove('-v', '-wrong');
feedbackContainer.classList.add('-correct');
var feedbackText = feedbackContainer.querySelector('.padding-box p');
if (feedbackText) {
feedbackText.innerHTML = 'C’est juste.';
}
}
var teleportView = document.querySelectorAll('div[view="TeleportView"]');
teleportView.forEach(function(element) {
var nestedView = element.querySelector('div[view]');
if (nestedView) {
var viewType = nestedView.getAttribute('view');
if (viewType === 'PuzzleGameOver') {
element.remove();
}
}
});
var liveElements = document.querySelectorAll('.live.spacer-box.-m-right-s4');
liveElements.forEach(function(liveElement) {
liveElement.classList.add('-avaiable');
});
var scoreElements = document.querySelectorAll('div');
scoreElements.forEach(function(scoreElement) {
var textContent = scoreElement.textContent;
var match = textContent.match(/^(\d+) \/ (\d+)$/);
if (match && match[1] !== match[2]) {
scoreElement.textContent = `${match[2]} / ${match[2]}`;
}
});
var repeatElements = document.querySelectorAll('div[view="Repeat"].lives.flex-layout.-items-center.spacer-box.-m-right-s16.-low.-medium, div[view="Repeat"].lives.flex-layout.-items-center.spacer-box.-m-right-s16.-medium');
repeatElements.forEach(function(repeatElement) {
repeatElement.classList.remove('-low', '-medium');
});
function updateTextElement() {
var textElement = document.querySelector('div.text-style.-s17.-black.-center.-router.spacer-box.-m-bottom-s32');
if (textElement) {
var textContent = textElement.textContent;
var roundMatch = textContent.match(/Du hast Runde \d+ geschafft\./);
if (roundMatch) {
textElement.textContent = `Du hast Runde ${roundCounter} geschafft. (drücke H)`;
}
}
}
setInterval(updateTextElement, 0);
setTimeout(start, 0);
}
start();