您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
⚒ Advanced Acellus Mod/Custom Pack ⚒
当前为
// ==UserScript== // @name Wizardebop // @author Type Stuff // @description ⚒ Advanced Acellus Mod/Custom Pack ⚒ // @version 10.5 // @match https://admin192a.acellus.com/student/* // @license MIT // @match https://admin192c.acellus.com/student/* // @run-at document-start // @grant none // @namespace https://greasyfork.org/users/1394549 // @icon https://i.pinimg.com/originals/44/66/ec/4466ecf1a7b1cfb3c40a014386e2fa57.png // ==/UserScript== (function () { 'use strict'; // Add styles for the settings menu, overlay, visual effects, and animated wallpapers. const style = document.createElement('style'); style.innerHTML = ` @keyframes animated-wallpaper { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } @keyframes snowfall { 0% { transform: translateY(-10px); } 100% { transform: translateY(100vh); } } @keyframes raindrop { 0% { transform: translateY(-50px); opacity: 0.7; } 100% { transform: translateY(100vh); opacity: 1; } } @keyframes floating-emoji { 0% { transform: translateY(0); opacity: 1; } 50% { transform: translateY(-30px); opacity: 0.8; } 100% { transform: translateY(0); opacity: 1; } } @keyframes color-particles { 0% { transform: translateX(0) translateY(0); opacity: 1; } 100% { transform: translateX(200px) translateY(200px); opacity: 0; } } #settings-button { position: fixed; bottom: 20px; right: 20px; background-color: #28a745; color: white; border: none; border-radius: 5px; padding: 10px 20px; cursor: pointer; font-size: 16px; z-index: 1002; transition: background-color 0.3s ease; } #settings-button:hover { background-color: #218838; } #settings-menu { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 75%; max-width: 900px; max-height: 80%; /* Limit height to 80% of the viewport */ overflow-y: auto; /* Enable vertical scroll */ background: linear-gradient(45deg, #ffd700, #ff69b4, #e0e0e0, #f0e68c); background-size: 200% 200%; animation: animated-wallpaper 8s ease infinite; border-radius: 15px; padding: 0; box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.3); z-index: 1001; display: none; overflow: hidden; } .settings-content { display: flex; width: 100%; height: 100%; border-radius: 15px; } .settings-categories { width: 25%; background-color: rgba(200, 200, 200, 0.9); padding: 20px 15px; box-sizing: border-box; margin: 0; border-top-left-radius: 15px; border-bottom-left-radius: 15px; transition: background-color 0.3s ease; } .settings-details { width: 75%; padding: 20px; display: flex; flex-direction: column; box-sizing: border-box; background-color: transparent; } #settings-menu h2 { margin-top: 0; color: #333; } .settings-categories button { width: 100%; padding: 12px; margin: 8px 0; border: none; background-color: rgba(255, 255, 255, 0.8); border-radius: 8px; cursor: pointer; text-align: left; color: #333; font-weight: bold; transition: background-color 0.3s ease, transform 0.2s ease; } .settings-categories button:hover { background-color: #007bff; color: white; transform: scale(1.05); } .category-menu { padding: 10px; background: rgba(249, 249, 249, 0.8); border-radius: 10px; display: none; } #overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.6); display: none; z-index: 1000; backdrop-filter: blur(8px); } #close-settings { background: none; border: none; color: #ffffff; font-size: 1.5rem; position: absolute; top: 15px; right: 15px; cursor: pointer; transition: color 0.3s ease; } #close-settings:hover { color: #555; } #close-settings::before { content: '✖'; } /* Dark Mode Styles */ body.dark-mode { background-color: #121212; color: #e0e0e0; } .dark-mode #settings-menu { background: linear-gradient(45deg, #2f2f2f, #0e4c92, #00bcd4, #008080, #454545, #1c1c1c, #274472, #026873, #123456, #0a0a0a); background-size: 200% 200%; animation: animated-wallpaper 8s ease infinite; } .dark-mode .settings-categories { background-color: rgba(80, 80, 80, 0.7); } .dark-mode .settings-categories button { background-color: #333333; color: #e0e0e0; } .dark-mode .settings-categories button:hover { background-color: #555555; color: #ffffff; } .dark-mode .category-menu { background: rgba(68, 68, 68, 0.8); color: #e0e0e0; } .dark-mode #close-settings { color: #8b0000; } .dark-mode #close-settings:hover { color: #ff6347; } #apply-appearance { margin-top: 15px; padding: 10px; background-color: #007bff; color: #ffffff; border: none; border-radius: 5px; cursor: pointer; transition: background-color 0.3s ease; } #apply-appearance:hover { background-color: #0056b3; } .gradient-option { display: inline-block; width: 80px; height: 50px; margin: 5px; border-radius: 8px; cursor: pointer; border: 2px solid transparent; transition: border-color 0.3s ease; } .gradient-option:hover { border-color: #007bff; } #wallpaper-preview { margin-top: 10px; display: flex; flex-wrap: wrap; } .gradient-bg { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-size: 200% 200%; animation: animated-wallpaper 20s ease infinite; z-index: -1; } .snowflake, .raindrop, .star, .firefly, .emoji, .particle { position: fixed; top: -10px; font-size: 20px; color: white; z-index: 1005; } .snowflake { animation: snowfall 10s linear infinite; } .raindrop { animation: raindrop 5s linear infinite; font-size: 12px; color: #00bfff; } .star { animation: twinkling 3s infinite alternate; color: #fffacd; font-size: 10px; } .firefly { background-color: yellow; width: 10px; height: 10px; border-radius: 50%; animation: twinkling 2s infinite alternate; } .emoji { animation: floating-emoji 4s infinite alternate; font-size: 30px; } .particle { animation: color-particles 6s linear infinite; background-color: #ff4081; border-radius: 50%; width: 10px; height: 10px; } #clock-widget { position: fixed; top: 20px; left: 20px; background-color: #333; color: #fff; padding: 10px 20px; border-radius: 8px; font-family: Arial, sans-serif; font-size: 18px; z-index: 1005; user-select: none; cursor: grab; /* Indicate it's draggable */ } `; document.head.appendChild(style); // Create the settings button, menu, gradient options, and clock. const settingsButton = document.createElement('button'); settingsButton.id = 'settings-button'; settingsButton.innerHTML = 'Settings'; document.body.appendChild(settingsButton); const settingsMenu = document.createElement('div'); settingsMenu.id = 'settings-menu'; settingsMenu.innerHTML = ` <div class="settings-content"> <div class="settings-categories"> <button class="category-btn" data-category="general">General</button> <button class="category-btn" data-category="appearance">Appearance</button> <button class="category-btn" data-category="wallpaper">Wallpaper</button> <button class="category-btn" data-category="effects">Effects</button> <button class="category-btn" data-category="widgets">Widgets</button> </div> <div class="settings-details"> <div class="category-menu" id="general-menu"> <label><input type="checkbox" id="enable-notifications"> Enable Notifications</label><br> <label><input type="checkbox" id="auto-save-progress"> Auto-Save Progress</label><br> <label><input type="checkbox" id="focus-mode"> Enable Focus Mode</label><br> <label><input type="checkbox" id="auto-dark-mode"> Enable Auto Dark Mode</label><br> <label><input type="checkbox" id="disable-animations"> Disable Animations</label><br> <button id="apply-general">Apply General Settings</button> </div> <div class="category-menu" id="appearance-menu"> <h2>Appearance Settings</h2> <label>Theme: <select id="theme-selector"> <option value="light">Light</option> <option value="dark">Dark</option> </select> </label><br> <label>Gradient Speed: <input type="range" id="gradient-speed" min="5" max="30" step="1" value="20"> </label><br> <label><input type="checkbox" id="enable-animations"> Enable Animations</label><br> <label><input type="checkbox" id="enable-background-blur"> Enable Background Blur</label><br> <button id="apply-appearance">Apply</button> </div> <div class="category-menu" id="wallpaper-menu"> <h2>Wallpaper Settings</h2> <label>Custom Wallpaper (Image/GIF URL): <input type="text" id="custom-wallpaper-url" placeholder="Enter image or gif URL" /> </label><br> <div id="wallpaper-preview"> <!-- Gradient options will be appended here --> </div> </div> <div class="category-menu" id="effects-menu"> <h2>Visual Effects</h2> <label><input type="checkbox" id="enable-snowfall"> Enable Snowfall Effect</label><br> <label><input type="checkbox" id="enable-rain"> Enable Minecraft-Like Rain Effect</label><br> <label><input type="checkbox" id="enable-stars"> Enable Twinkling Stars Effect</label><br> <label><input type="checkbox" id="enable-fireflies"> Enable Fireflies Effect</label><br> <label><input type="checkbox" id="enable-floating-emojis"> Enable Floating Emojis</label><br> <label><input type="checkbox" id="enable-particles"> Enable Color Particles</label><br> <button id="apply-effects">Apply Effects</button> </div> <div class="category-menu" id="widgets-menu"> <h2>Widgets</h2> <label><input type="checkbox" id="enable-clock-widget"> Enable Clock Widget</label><br> <button id="apply-widgets">Apply Widgets</button> </div> </div> </div> <button id="close-settings"></button> `; document.body.appendChild(settingsMenu); settingsMenu.style.display = 'none'; const overlay = document.createElement('div'); overlay.id = 'overlay'; document.body.appendChild(overlay); overlay.style.display = 'none'; // Clock widget const clockWidget = document.createElement('div'); clockWidget.id = 'clock-widget'; document.body.appendChild(clockWidget); clockWidget.style.display = 'none'; // Update clock every second setInterval(() => { const now = new Date(); clockWidget.textContent = now.toLocaleTimeString(); }, 1000); // Make the clock widget draggable clockWidget.onmousedown = function (event) { event.preventDefault(); let shiftX = event.clientX - clockWidget.getBoundingClientRect().left; let shiftY = event.clientY - clockWidget.getBoundingClientRect().top; function moveAt(pageX, pageY) { clockWidget.style.left = pageX - shiftX + 'px'; clockWidget.style.top = pageY - shiftY + 'px'; } function onMouseMove(event) { moveAt(event.pageX, event.pageY); } document.addEventListener('mousemove', onMouseMove); clockWidget.onmouseup = function () { document.removeEventListener('mousemove', onMouseMove); clockWidget.onmouseup = null; }; }; clockWidget.ondragstart = function () { return false; }; // New General Productivity Settings Functions function applyFocusMode(enable) { if (enable) { document.body.style.filter = "blur(0)"; // Reset blurs document.querySelectorAll('.distracting-element').forEach(el => el.style.display = 'none'); } else { document.querySelectorAll('.distracting-element').forEach(el => el.style.display = ''); } } function autoDarkMode() { const now = new Date(); const hour = now.getHours(); if (hour >= 18 || hour < 6) { document.body.classList.add('dark-mode'); } else { document.body.classList.remove('dark-mode'); } } function applyAutoDarkMode(enable) { if (enable) { setInterval(autoDarkMode, 60000); // Check every minute autoDarkMode(); // Apply immediately } } function applyDisableAnimations(enable) { if (enable) { document.querySelectorAll("*").forEach(el => { el.style.animation = "none"; el.style.transition = "none"; }); } } // Event listeners for general settings document.getElementById('apply-general').addEventListener('click', () => { const focusMode = document.getElementById('focus-mode').checked; const autoDarkModeEnabled = document.getElementById('auto-dark-mode').checked; const disableAnimations = document.getElementById('disable-animations').checked; saveSetting('focus-mode', focusMode); saveSetting('auto-dark-mode', autoDarkModeEnabled); saveSetting('disable-animations', disableAnimations); applyFocusMode(focusMode); applyAutoDarkMode(autoDarkModeEnabled); applyDisableAnimations(disableAnimations); }); // Function to save settings to localStorage. const saveSetting = (id, value) => { localStorage.setItem(id, value); }; // Apply all initial settings based on saved values. const applySavedSettings = () => { const focusMode = localStorage.getItem('focus-mode') === 'true'; const autoDarkModeEnabled = localStorage.getItem('auto-dark-mode') === 'true'; const disableAnimations = localStorage.getItem('disable-animations') === 'true'; document.getElementById('focus-mode').checked = focusMode; document.getElementById('auto-dark-mode').checked = autoDarkModeEnabled; document.getElementById('disable-animations').checked = disableAnimations; applyFocusMode(focusMode); applyAutoDarkMode(autoDarkModeEnabled); applyDisableAnimations(disableAnimations); }; // Apply saved general settings upon script initialization applySavedSettings(); // Remaining functions and event listeners follow... // All other event listeners and settings functionality remain intact as requested // This includes applying effects, animations, clock, wallpaper customization, and the menu operations. document.getElementById('apply-appearance').addEventListener('click', () => { const customWallpaperUrl = document.getElementById('custom-wallpaper-url').value; saveSetting('custom-wallpaper-url', customWallpaperUrl); // Save custom wallpaper URL applyCustomWallpaper(customWallpaperUrl); applyTheme(); const blur = document.getElementById('enable-background-blur').checked; const gradientSpeed = document.getElementById('gradient-speed').value; saveSetting('enable-background-blur', blur); saveSetting('gradient-speed', gradientSpeed); const gradientBg = document.querySelector('.gradient-bg'); if (gradientBg) { gradientBg.style.animationDuration = `${gradientSpeed}s`; } if (blur) { document.body.style.backdropFilter = 'blur(8px)'; } else { document.body.style.backdropFilter = ''; } }); document.getElementById('apply-effects').addEventListener('click', () => { const snowfall = document.getElementById('enable-snowfall').checked; const rain = document.getElementById('enable-rain').checked; const stars = document.getElementById('enable-stars').checked; const fireflies = document.getElementById('enable-fireflies').checked; const floatingEmojis = document.getElementById('enable-floating-emojis').checked; const particles = document.getElementById('enable-particles').checked; saveSetting('enable-snowfall', snowfall); saveSetting('enable-rain', rain); saveSetting('enable-stars', stars); saveSetting('enable-fireflies', fireflies); saveSetting('enable-floating-emojis', floatingEmojis); saveSetting('enable-particles', particles); toggleEffect('snowflake', snowfall); toggleEffect('raindrop', rain); toggleEffect('star', stars); toggleEffect('firefly', fireflies); toggleEffect('emoji', floatingEmojis); toggleEffect('particle', particles); }); document.getElementById('apply-widgets').addEventListener('click', () => { const clockEnabled = document.getElementById('enable-clock-widget').checked; saveSetting('enable-clock-widget', clockEnabled); clockWidget.style.display = clockEnabled ? 'block' : 'none'; }); // Gradient options expanded for user customization const gradients = [ 'linear-gradient(90deg, #ff7e5f, #feb47b)', 'linear-gradient(90deg, #6a11cb, #2575fc)', 'linear-gradient(90deg, #43cea2, #185a9d)', 'linear-gradient(90deg, #ff9a9e, #fad0c4)', 'linear-gradient(90deg, #a1c4fd, #c2e9fb)', 'linear-gradient(90deg, #667eea, #764ba2)', 'linear-gradient(90deg, #89f7fe, #66a6ff)', // Add additional gradients as desired ]; const wallpaperPreview = document.getElementById('wallpaper-preview'); gradients.forEach((gradient) => { const gradientDiv = document.createElement('div'); gradientDiv.className = 'gradient-option'; gradientDiv.style.background = gradient; gradientDiv.dataset.gradient = gradient; gradientDiv.addEventListener('click', () => { applyAnimatedGradient(gradient); saveSetting('selected-gradient', gradient); // Save selected gradient }); wallpaperPreview.appendChild(gradientDiv); }); function applyAnimatedGradient(gradient) { let gradientBg = document.querySelector('.gradient-bg'); if (!gradientBg) { gradientBg = document.createElement('div'); gradientBg.className = 'gradient-bg'; document.body.appendChild(gradientBg); } gradientBg.style.background = gradient; } // Open and close settings menu functions function openSettingsMenu() { overlay.style.display = 'block'; settingsMenu.style.display = 'flex'; } function closeSettingsMenu() { overlay.style.display = 'none'; settingsMenu.style.display = 'none'; document.querySelectorAll('.category-menu').forEach(menu => { menu.style.display = 'none'; }); } // Event listeners for settings button and menu actions. settingsButton.addEventListener('click', () => { const code = prompt('Enter the password:'); if (code === '123') { openSettingsMenu(); } else { alert('Incorrect password'); } }); overlay.addEventListener('click', closeSettingsMenu); document.getElementById('close-settings').addEventListener('click', closeSettingsMenu); document.querySelectorAll('.category-btn').forEach(button => { button.addEventListener('click', (e) => { const category = e.target.getAttribute('data-category'); const menu = document.getElementById(`${category}-menu`); document.querySelectorAll('.category-menu').forEach(menu => { menu.style.display = 'none'; }); if (menu) { menu.style.display = 'block'; } }); }); // Function to apply the custom wallpaper setting to the main background function applyCustomWallpaper(url) { let gradientBg = document.querySelector('.gradient-bg'); if (gradientBg) gradientBg.remove(); if (url) { document.body.style.backgroundImage = `url('${url}')`; document.body.style.backgroundPosition = 'center'; document.body.style.backgroundRepeat = 'no-repeat'; document.body.style.backgroundSize = 'cover'; } else { document.body.style.backgroundImage = ''; } } // Apply theme settings function applyTheme() { const theme = document.getElementById('theme-selector').value; saveSetting('theme-selector', theme); // Save theme to localStorage if (theme === 'dark') { document.body.classList.add('dark-mode'); } else { document.body.classList.remove('dark-mode'); } } // Effect toggle functionality function toggleEffect(type, enable) { let effectIntervals = {}; if (enable) { if (!effectIntervals[type]) { effectIntervals[type] = setInterval(() => createEffect(type), 500); } } else { clearInterval(effectIntervals[type]); delete effectIntervals[type]; document.querySelectorAll(`.${type}`).forEach(el => el.remove()); } } function createEffect(type) { const effectElement = document.createElement('div'); effectElement.className = type; if (type === 'snowflake') { effectElement.textContent = '❄'; } else if (type === 'raindrop') { effectElement.textContent = '|'; } else if (type === 'star') { effectElement.textContent = '★'; } else if (type === 'emoji') { effectElement.textContent = ['🌟', '✨', '❤️', '😊', '🔥', '🌈'][Math.floor(Math.random() * 6)]; } effectElement.style.left = Math.random() * window.innerWidth + 'px'; effectElement.style.animationDuration = Math.random() * 5 + 5 + 's'; document.body.appendChild(effectElement); setTimeout(() => effectElement.remove(), 10000); } // Apply all initial appearance settings based on saved values. const applyAppearanceSettings = () => { const theme = localStorage.getItem('theme-selector'); if (theme) { document.getElementById('theme-selector').value = theme; applyTheme(); } const customWallpaperUrl = localStorage.getItem('custom-wallpaper-url'); if (customWallpaperUrl) { document.getElementById('custom-wallpaper-url').value = customWallpaperUrl; applyCustomWallpaper(customWallpaperUrl); } const selectedGradient = localStorage.getItem('selected-gradient'); if (selectedGradient) { applyAnimatedGradient(selectedGradient); } const gradientSpeed = localStorage.getItem('gradient-speed'); if (gradientSpeed) { document.getElementById('gradient-speed').value = gradientSpeed; const gradientBg = document.querySelector('.gradient-bg'); if (gradientBg) { gradientBg.style.animationDuration = `${gradientSpeed}s`; } } const snowfall = localStorage.getItem('enable-snowfall') === 'true'; const rain = localStorage.getItem('enable-rain') === 'true'; const stars = localStorage.getItem('enable-stars') === 'true'; const blur = localStorage.getItem('enable-background-blur') === 'true'; const fireflies = localStorage.getItem('enable-fireflies') === 'true'; const floatingEmojis = localStorage.getItem('enable-floating-emojis') === 'true'; const particles = localStorage.getItem('enable-particles') === 'true'; const clockEnabled = localStorage.getItem('enable-clock-widget') === 'true'; document.getElementById('enable-snowfall').checked = snowfall; document.getElementById('enable-rain').checked = rain; document.getElementById('enable-stars').checked = stars; document.getElementById('enable-background-blur').checked = blur; document.getElementById('enable-fireflies').checked = fireflies; document.getElementById('enable-floating-emojis').checked = floatingEmojis; document.getElementById('enable-particles').checked = particles; document.getElementById('enable-clock-widget').checked = clockEnabled; clockWidget.style.display = clockEnabled ? 'block' : 'none'; toggleEffect('snowflake', snowfall); toggleEffect('raindrop', rain); toggleEffect('star', stars); toggleEffect('firefly', fireflies); toggleEffect('emoji', floatingEmojis); toggleEffect('particle', particles); if (blur) { document.body.style.backdropFilter = 'blur(8px)'; } }; applyAppearanceSettings(); // Add event listeners for checkboxes to save their state. document.querySelectorAll('input[type="checkbox"]').forEach(checkbox => { checkbox.addEventListener('change', function () { saveSetting(this.id, this.checked); }); }); // Ensure changes to the theme are reflected immediately when the user changes the theme. document.getElementById('theme-selector').addEventListener('change', applyTheme); })();