// ==UserScript== // @name RScript Rideable Giant Dragon 🐉🔥 // @namespace http://tampermonkey.net/ // @version 6.1 // @description Ride a giant dragon and fly across RScript website! // @match https://rscript.net/* // @grant none // ==/UserScript== (function() { 'use strict'; const DRAGON_IMAGE_URL = 'https://i.imgur.com/9T8O7qM.jpeg'; // 1. Inject CSS animations and button styles const styleSheet = document.createElement("style"); styleSheet.innerText = ` @keyframes giantWingFlap { 0% { transform: scale(1) rotate(0deg); } 25% { transform: scale(1.1, 0.9) rotate(-4deg); filter: brightness(1.15); } 50% { transform: scale(0.95, 1.05) rotate(0deg); } 75% { transform: scale(1.1, 0.9) rotate(4deg); filter: brightness(1.15); } 100% { transform: scale(1) rotate(0deg); } } .giant-flapping { animation: giantWingFlap 0.4s infinite ease-in-out; } @keyframes giantFireGlow { 0% { box-shadow: 0 20px 50px rgba(255, 69, 0, 0.7); } 50% { box-shadow: 0 0 80px 30px #ff2200, inset 0 0 30px #ffcc00; } 100% { box-shadow: 0 20px 50px rgba(255, 69, 0, 0.7); } } .giant-breathing-fire { animation: giantFireGlow 0.4s ease infinite; } #dragon-ride-btn { position: fixed; bottom: 30px; left: 30px; z-index: 10000000; background: linear-gradient(135deg, #ff4500, #8b0000); color: white; border: 2px solid #ffcc00; padding: 12px 24px; font-size: 16px; font-weight: bold; border-radius: 30px; cursor: pointer; box-shadow: 0 5px 20px rgba(255, 69, 0, 0.5); transition: all 0.3s ease; font-family: Tahoma, sans-serif; } #dragon-ride-btn:hover { transform: scale(1.08); box-shadow: 0 8px 25px rgba(255, 69, 0, 0.8); background: linear-gradient(135deg, #ff5722, #b71c1c); } `; document.head.appendChild(styleSheet); // 2. Create the Ride Button const rideBtn = document.createElement('button'); rideBtn.id = 'dragon-ride-btn'; rideBtn.innerHTML = '🐉 Mount Dragon'; document.body.appendChild(rideBtn); // 3. Create the Giant Dragon container (Hidden by default) const dragon = document.createElement('div'); dragon.id = 'rscript-giant-flying-dragon'; dragon.style.position = 'fixed'; dragon.style.width = '320px'; dragon.style.height = '320px'; dragon.style.zIndex = '999999'; dragon.style.pointerEvents = 'none'; dragon.style.transformOrigin = 'center center'; dragon.style.display = 'none'; const dragonImg = document.createElement('img'); dragonImg.src = DRAGON_IMAGE_URL; dragonImg.style.width = '100%'; dragonImg.style.height = '100%'; dragonImg.style.objectFit = 'cover'; dragonImg.style.borderRadius = '50%'; dragonImg.style.border = '6px solid #ff4500'; dragonImg.className = 'giant-flapping'; dragon.appendChild(dragonImg); const rider = document.createElement('div'); rider.innerHTML = '🧙‍♂️'; rider.style.position = 'absolute'; rider.style.top = '-25px'; rider.style.left = '50%'; rider.style.transform = 'translateX(-50%)'; rider.style.fontSize = '45px'; rider.style.zIndex = '1000000'; dragon.appendChild(rider); document.body.appendChild(dragon); // 4. Flight variables & Animation loop let isRiding = false; let mouseX = window.innerWidth / 2; let mouseY = window.innerHeight / 2; let dragonX = window.innerWidth / 2; let dragonY = window.innerHeight / 2; window.addEventListener('mousemove', (e) => { mouseX = e.clientX; mouseY = e.clientY; }); function animateDragon() { if (isRiding) { let distX = mouseX - dragonX; let distY = mouseY - dragonY; dragonX += distX * 0.07; dragonY += distY * 0.07; let scaleX = distX > 0 ? '1' : '-1'; dragon.style.left = (dragonX - 160) + 'px'; dragon.style.top = (dragonY - 160) + 'px'; dragon.style.transform = `scaleX(${scaleX}) rotate(${distY * 0.03}deg)`; } requestAnimationFrame(animateDragon); } animateDragon(); // 5. Button toggle event (Mount / Dismount) rideBtn.addEventListener('click', () => { isRiding = !isRiding; if (isRiding) { dragonX = mouseX; dragonY = mouseY; dragon.style.display = 'block'; rideBtn.innerHTML = '🛑 Dismount Dragon'; rideBtn.style.background = 'linear-gradient(135deg, #333, #555)'; rideBtn.style.borderColor = '#888'; } else { dragon.style.display = 'none'; rideBtn.innerHTML = '🐉 Mount Dragon'; rideBtn.style.background = 'linear-gradient(135deg, #ff4500, #8b0000)'; rideBtn.style.borderColor = '#ffcc00'; } }); // 6. Fire breathing effect on click while riding window.addEventListener('click', (e) => { if (isRiding && e.target !== rideBtn) { dragonImg.classList.add('giant-breathing-fire'); rider.innerHTML = '🔥🧙‍♂️🔥'; setTimeout(() => { dragonImg.classList.remove('giant-breathing-fire'); rider.innerHTML = '🧙‍♂️'; }, 800); } }); console.log("🐉✨ RScript Giant Dragon Rider script loaded successfully!"); })();