您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A sigmally Mod
当前为
// ==UserScript== // @name Sigmally Mod // @version 1.5 // @description A sigmally Mod // @author Cursed // @match *://sigmally.com/* // @icon https://iili.io/yaKNoB.png // @grant none // @run-at document-end // @license MIT // @namespace https://greasyfork.org/users/981958 // ==/UserScript== let Cursed__style = ` /* * Common */ .text-right { text-align: right; } .flex { display: flex; justify-content: center; } /* * Element-Specific */ #rx-mod-settings { background: linear-gradient(-45deg, #B876FF, #1F2A9E, #B876FF); background-size: 300% 300%; padding: 30px; border-radius: 15px; width: 350px; min-height: 300px; top: 5em; left: 50%; margin-left: -175px; z-index: 99999; box-shadow: 0 0 15px #000; position: fixed; animation: change 5s ease-in-out infinite; text-align: center; } @keyframes change{ 0%{ background-position: 0 50%; } 50%{ background-position: 100% 50%; } 100%{ background-position: 0 50%; } } #rx-mod-settings input.keybinding { max-width: 20px; border: 1px solid #ccc; padding: 0; text-align: center; margin-right: 5px; } #rx-mod-settings input[type="radio"] { margin-right: 5px; } #rx-mod-settings input[type="submit"] { width: 100%; margin-top: 15px; } #rx-mod-settings.hidden { display: none; } #Cursed-Button{ top: 50%; width: 100px; height: 5vh; } #rx-mod-wrap { color:#fff; min-height: 25px; position: fixed; top: 15%; left: 3%; width: 100px; z-index:99997; transition: .3s; user-select: none; border: none; transform: translate(-50%, -50%); } #rx-mod-wrap button { cursor: pointer; color: #333; } #rx-mod-wrap span.text { margin-left: 15px; padding-left: 15px; border-left: 1px solid #dfdfdf; } #text-block,#left_ad_block,#ad_bottom,.ad-block,.ad-block-left,.ad-block-right { visibility: hidden; } .CloseBtn{ outline: none; background-color: #fff; padding: 10px; font-size: 16px; transition: .3s; position: relative; background-color: transparent; color: #fff; border-radius: 15px; border: 1px solid #fff; } .CloseBtn:hover{ background-color: #5865F2; transition: .3s; } .SettingsBtn{ background-color: transparent; } .keybinding{ outline: none; color: #fff; background-color: #303030; border: none; border-radius: 5px; font-weight: 500; } .Sett{ color: #fff; user-select: none; font-weight: 500; } .text{ color: #fff; font-weight: 500; user-select: none; } .titleImg{ width: 100%; height: 150px; border-radius: 20px; margin-bottom: 5px; } .JoinDc{ background-color: transparent; width: 75%; height: 30px; border: 1px solid #fff; border-radius: 5px; color: #fff; transition: .3s; } .JoinDc:hover{ background-color: #5865F2; transition: .3s; } .StylishNames{ display: flex; justify-content: space-between; } .divBtn{ background-color: transparent; height: 30px; border: 1px solid #fff; border-radius: 5px; color: #fff; margin: 5px; transition: .3s; margin-bottom: 20px; outline: none; } .divBtn:hover{ background-color: #5865F2; transition: .3s; } .Btn01{ width: 100%; } .Btn02{ width: 100%; } .ColorImage{ width: 50px; height: 50px; cursor: pointer; } #SettingsButton{ background-color: transparent; height: 30px; background-image: url('https://i.ibb.co/pJhSvHJ/icons8-zahnrad-30.png'); width: 30px; background-size: cover; border: none; } #SettingsButton:hover{ opactiy: .5; } @media screen and (max-height: 900px) { #rx-mod-wrap{ top: 21%; } } @media screen and (max-height: 900px) { #rx-mod-wrap{ top: 24%; } } ` let s = document.createElement('style'); s.type = "text/css" s.innerHTML = Cursed__style; (document.head || document.documentElement).appendChild(s); (function() { const rzModWrap = document.createElement('div'); const rzModSettings = document.createElement('form'); const rzModStyle = document.createElement('link'); const KEY_FEED = { key: 'w', keyCode: 32, which: 32 }; const KEY_SPLIT = { keyCode: 32, code: 'Space', cancelable: true, composed: true, isTrusted: true, which: 32 } rzModWrap.setAttribute('id', 'rx-mod-wrap'); const Zero_Two = ''; /* * Configure Settings */ let rxSettings = localStorage.getItem('rxSettings'); if (!rxSettings){ rxSettings = { keyBindingsRapidFeed: 'q', keyBindingsdoubleSplit: 'd', keyBindingsTripleSplit: 'f', keyBindingsQuadSplit: 'g', }; } else { rxSettings = JSON.parse(rxSettings); } rzModSettings.setAttribute('id', 'rx-mod-settings'); rzModSettings.classList.add('hidden'); rzModSettings.onsubmit = (e) => { rzModSettings.classList.toggle('hidden'); e.preventDefault(); let options = new FormData(rzModSettings); rxSettings = {}; for (var key of options.keys()) { rxSettings[key] = options.get(key); } localStorage.setItem('rxSettings', JSON.stringify(rxSettings)); return false; }; rzModSettings.innerHTML = '<img src="https://iili.io/yaKNoB.png" class="titleImg">' + '<h4 class="Sett">Mod Settings</h4>' + '<hr/>' + '<h5 class="Sett">Key Mappings</h5>' + '<label class="flex">' + '<input type="text" name="keyBindingsRapidFeed" class="keybinding" value="' + rxSettings.keyBindingsRapidFeed + '" maxlength="1" onfocus="this.select()">' + '<span class="text">Rapid Feed</span>' + '</label>' + '<label class="flex">' + '<input type="text" name="keyBindingsDoubleSplit" class="keybinding" value="' + rxSettings.keyBindingsDoubleSplit + '" maxlength="1" onfocus="this.select()">' + '<span class="text">Double Split</span>' + '</label>' + '<label class="flex">' + '<input type="text" name="keyBindingsTripleSplit" class="keybinding" value="' + rxSettings.keyBindingsTripleSplit + '" maxlength="1" onfocus="this.select()">' + '<span class="text">Triple Split</span>' + '</label>' + '<label class="flex">' + '<input type="text" name="keyBindingsQuadSplit" class="keybinding" value="' + rxSettings.keyBindingsQuadSplit + '" maxlength="1" onfocus="this.select()">' + '<span class="text">Quad Split</span>' + '</label>' + '</label>' + '<hr/>' + '<h4 class="Sett">Discord</h4>' + '<a href="https://discord.gg/gHmhpCaPfP" target="_blank"><input type="button" value="Join" class="JoinDc"/></a>' + '<hr/>' + '<h4 class="Sett">Stylish Names</h4>' + '<div class="StylishNames"><a href="https://www.stylishnamemaker.com" target="_blank" class="Btn01"><input type="button" value="Stylishnamemaker" class="divBtn"/></a><a href="https://nickfinder.com" target="_blank" class="Btn02"><input type="button" value="Nickfinder" class="divBtn Btn02"/></a></div>' + '<input type="submit" class="CloseBtn"; value="Save & Close"/>'; /* * Mod Collection * * Mod Types: * - Button * - Automatic * - Code * - Text */ const gameSettings = document.getElementById('settings'); gameSettings.innerHTML = ` <ul class="checkbox-grid"> <li> <div class="pretty p-svg p-round p-smooth"> <input type="checkbox" id="darkTheme"> <div class="state p-success"> <svg class="svg svg-icon" viewBox="0 0 20 20"> <path d="M7.629,14.566c0.125,0.125,0.291,0.188,0.456,0.188c0.164,0,0.329-0.062,0.456-0.188l8.219-8.221c0.252-0.252,0.252-0.659,0-0.911c-0.252-0.252-0.659-0.252-0.911,0l-7.764,7.763L4.152,9.267c-0.252-0.251-0.66-0.251-0.911,0c-0.252,0.252-0.252,0.66,0,0.911L7.629,14.566z" style="stroke: white;fill:white;"></path> </svg> <label>Dark</label> </div> </div> </li> <li> <div class="pretty p-svg p-round p-smooth"> <input type="checkbox" id="showMass"> <div class="state p-success"> <svg class="svg svg-icon" viewBox="0 0 20 20"> <path d="M7.629,14.566c0.125,0.125,0.291,0.188,0.456,0.188c0.164,0,0.329-0.062,0.456-0.188l8.219-8.221c0.252-0.252,0.252-0.659,0-0.911c-0.252-0.252-0.659-0.252-0.911,0l-7.764,7.763L4.152,9.267c-0.252-0.251-0.66-0.251-0.911,0c-0.252,0.252-0.252,0.66,0,0.911L7.629,14.566z" style="stroke: white;fill:white;"></path> </svg> <label>Mass</label> </div> </div> </li> <li> <div class="pretty p-svg p-round p-smooth"> <input type="checkbox" id="showChat"> <div class="state p-success"> <svg class="svg svg-icon" viewBox="0 0 20 20"> <path d="M7.629,14.566c0.125,0.125,0.291,0.188,0.456,0.188c0.164,0,0.329-0.062,0.456-0.188l8.219-8.221c0.252-0.252,0.252-0.659,0-0.911c-0.252-0.252-0.659-0.252-0.911,0l-7.764,7.763L4.152,9.267c-0.252-0.251-0.66-0.251-0.911,0c-0.252,0.252-0.252,0.66,0,0.911L7.629,14.566z" style="stroke: white;fill:white;"></path> </svg> <label>Chat</label> </div> </div> </li> <li> <div class="pretty p-svg p-round p-smooth"> <input type="checkbox" id="showMinimap"> <div class="state p-success"> <svg class="svg svg-icon" viewBox="0 0 20 20"> <path d="M7.629,14.566c0.125,0.125,0.291,0.188,0.456,0.188c0.164,0,0.329-0.062,0.456-0.188l8.219-8.221c0.252-0.252,0.252-0.659,0-0.911c-0.252-0.252-0.659-0.252-0.911,0l-7.764,7.763L4.152,9.267c-0.252-0.251-0.66-0.251-0.911,0c-0.252,0.252-0.252,0.66,0,0.911L7.629,14.566z" style="stroke: white;fill:white;"></path> </svg> <label>Minimap</label> </div> </div> </li> <li> <div class="pretty p-svg p-round p-smooth"> <input type="checkbox" id="showBorder"> <div class="state p-success"> <svg class="svg svg-icon" viewBox="0 0 20 20"> <path d="M7.629,14.566c0.125,0.125,0.291,0.188,0.456,0.188c0.164,0,0.329-0.062,0.456-0.188l8.219-8.221c0.252-0.252,0.252-0.659,0-0.911c-0.252-0.252-0.659-0.252-0.911,0l-7.764,7.763L4.152,9.267c-0.252-0.251-0.66-0.251-0.911,0c-0.252,0.252-0.252,0.66,0,0.911L7.629,14.566z" style="stroke: white;fill:white;"></path> </svg> <label>Border</label> </div> </div> </li> <li> <div class="pretty p-svg p-round p-smooth"> <input type="checkbox" id="showGrid"> <div class="state p-success"> <svg class="svg svg-icon" viewBox="0 0 20 20"> <path d="M7.629,14.566c0.125,0.125,0.291,0.188,0.456,0.188c0.164,0,0.329-0.062,0.456-0.188l8.219-8.221c0.252-0.252,0.252-0.659,0-0.911c-0.252-0.252-0.659-0.252-0.911,0l-7.764,7.763L4.152,9.267c-0.252-0.251-0.66-0.251-0.911,0c-0.252,0.252-0.252,0.66,0,0.911L7.629,14.566z" style="stroke: white;fill:white;"></path> </svg> <label>Grid</label> </div> </div> </li> <li> <div class="pretty p-svg p-round p-smooth"> <input type="checkbox" id="moreZoom"> <div class="state p-success"> <svg class="svg svg-icon" viewBox="0 0 20 20"> <path d="M7.629,14.566c0.125,0.125,0.291,0.188,0.456,0.188c0.164,0,0.329-0.062,0.456-0.188l8.219-8.221c0.252-0.252,0.252-0.659,0-0.911c-0.252-0.252-0.659-0.252-0.911,0l-7.764,7.763L4.152,9.267c-0.252-0.251-0.66-0.251-0.911,0c-0.252,0.252-0.252,0.66,0,0.911L7.629,14.566z" style="stroke: white;fill:white;"></path> </svg> <label>Zoomout</label> </div> </div> </li> <li> <div class="pretty p-svg p-round p-smooth"> <input type="checkbox" id="jellyPhysics"> <div class="state p-success"> <svg class="svg svg-icon" viewBox="0 0 20 20"> <path d="M7.629,14.566c0.125,0.125,0.291,0.188,0.456,0.188c0.164,0,0.329-0.062,0.456-0.188l8.219-8.221c0.252-0.252,0.252-0.659,0-0.911c-0.252-0.252-0.659-0.252-0.911,0l-7.764,7.763L4.152,9.267c-0.252-0.251-0.66-0.251-0.911,0c-0.252,0.252-0.252,0.66,0,0.911L7.629,14.566z" style="stroke: white;fill:white;"></path> </svg> <label>Jelly Physics</label> </div> </div> </li> <li> <div class="pretty p-svg p-round p-smooth"> <input type="checkbox" id="showNames"> <div class="state p-success"> <svg class="svg svg-icon" viewBox="0 0 20 20"> <path d="M7.629,14.566c0.125,0.125,0.291,0.188,0.456,0.188c0.164,0,0.329-0.062,0.456-0.188l8.219-8.221c0.252-0.252,0.252-0.659,0-0.911c-0.252-0.252-0.659-0.252-0.911,0l-7.764,7.763L4.152,9.267c-0.252-0.251-0.66-0.251-0.911,0c-0.252,0.252-0.252,0.66,0,0.911L7.629,14.566z" style="stroke: white;fill:white;"></path> </svg> <label>Names</label> </div> </div> </li> <li> <div class="pretty p-svg p-round p-smooth"> <input type="checkbox" id="showSkins"> <div class="state p-success"> <svg class="svg svg-icon" viewBox="0 0 20 20"> <path d="M7.629,14.566c0.125,0.125,0.291,0.188,0.456,0.188c0.164,0,0.329-0.062,0.456-0.188l8.219-8.221c0.252-0.252,0.252-0.659,0-0.911c-0.252-0.252-0.659-0.252-0.911,0l-7.764,7.763L4.152,9.267c-0.252-0.251-0.66-0.251-0.911,0c-0.252,0.252-0.252,0.66,0,0.911L7.629,14.566z" style="stroke: white;fill:white;"></path> </svg> <label>Skins</label> </div> </div> </li> <li> <div class="pretty p-svg p-round p-smooth"> <input type="checkbox" id="showPosition"> <div class="state p-success"> <svg class="svg svg-icon" viewBox="0 0 20 20"> <path d="M7.629,14.566c0.125,0.125,0.291,0.188,0.456,0.188c0.164,0,0.329-0.062,0.456-0.188l8.219-8.221c0.252-0.252,0.252-0.659,0-0.911c-0.252-0.252-0.659-0.252-0.911,0l-7.764,7.763L4.152,9.267c-0.252-0.251-0.66-0.251-0.911,0c-0.252,0.252-0.252,0.66,0,0.911L7.629,14.566z" style="stroke: white;fill:white;"></path> </svg> <label>Position</label> </div> </div> </li> </ul> </div> ` const rzMods = [{ modName: 'Branding', modType: 'automatic', modDescription: 'Branding', modCode: () => { const gameTitle = document.getElementById('title'); gameTitle.innerHTML = 'Sigmally<span style="display:block; font-size: 14px;">By RingZer0 / Cursed</span>'; } }, { modName: 'Rapid Feed (q)', modType: 'automatic', modDescription: 'You feed faster', modCode: () => { // TODO: Add these to settings/configuration pane window.rxTimeouts = []; const amount = 10; window.addEventListener('keyup', e => { if (e.key == rxSettings.keyBindingsRapidFeed){ for (var i = 0; i < rxTimeouts.length; i++){ clearTimeout(rxTimeouts[i]); } } }); /* * Keyboard Overrides */ window.addEventListener('keydown', e => { if (e.key == 'Escape'){ rzModSettings.classList.add('hidden'); } if (e.key == rxSettings.keyBindingsRapidFeed){ // kickstart first one window.dispatchEvent(new KeyboardEvent('keydown', KEY_FEED )); window.dispatchEvent(new KeyboardEvent('keyup', KEY_FEED )); window.dispatchEvent(new KeyboardEvent('keydown', KEY_FEED )); window.dispatchEvent(new KeyboardEvent('keyup', KEY_FEED )); window.dispatchEvent(new KeyboardEvent('keydown', KEY_FEED )); window.dispatchEvent(new KeyboardEvent('keyup', KEY_FEED )); window.dispatchEvent(new KeyboardEvent('keydown', KEY_FEED )); window.dispatchEvent(new KeyboardEvent('keyup', KEY_FEED )); window.dispatchEvent(new KeyboardEvent('keydown', KEY_FEED )); window.dispatchEvent(new KeyboardEvent('keyup', KEY_FEED )); for (var i = 0; i < amount; ++i) { rxTimeouts.push(setTimeout(function() { window.dispatchEvent(new KeyboardEvent('keydown', KEY_FEED )); window.dispatchEvent(new KeyboardEvent('keyup', KEY_FEED )); window.dispatchEvent(new KeyboardEvent('keydown', KEY_FEED )); window.dispatchEvent(new KeyboardEvent('keyup', KEY_FEED )); window.dispatchEvent(new KeyboardEvent('keydown', KEY_FEED )); window.dispatchEvent(new KeyboardEvent('keyup', KEY_FEED )); }, i )); } return; } if (e.key == rxSettings.keyBindingsDoubleSplit){ for (let i = 0; i < 2; ++i) { setTimeout(function() { window.dispatchEvent(new KeyboardEvent('keydown', KEY_SPLIT)); window.dispatchEvent(new KeyboardEvent('keyup', KEY_SPLIT)); }, i + 1 ); } return; } if (e.key == rxSettings.keyBindingsTripleSplit){ window.dispatchEvent(new KeyboardEvent('keydown', KEY_SPLIT)); window.dispatchEvent(new KeyboardEvent('keyup', KEY_SPLIT)); window.dispatchEvent(new KeyboardEvent('keydown', KEY_SPLIT)); window.dispatchEvent(new KeyboardEvent('keyup', KEY_SPLIT)); window.dispatchEvent(new KeyboardEvent('keydown', KEY_SPLIT)); window.dispatchEvent(new KeyboardEvent('keyup', KEY_SPLIT)); return; } if (e.key == rxSettings.keyBindingsQuadSplit){ window.dispatchEvent(new KeyboardEvent('keydown', KEY_SPLIT)); window.dispatchEvent(new KeyboardEvent('keyup', KEY_SPLIT)); window.dispatchEvent(new KeyboardEvent('keydown', KEY_SPLIT)); window.dispatchEvent(new KeyboardEvent('keyup', KEY_SPLIT)); window.dispatchEvent(new KeyboardEvent('keydown', KEY_SPLIT)); window.dispatchEvent(new KeyboardEvent('keyup', KEY_SPLIT)); window.dispatchEvent(new KeyboardEvent('keydown', KEY_SPLIT)); window.dispatchEvent(new KeyboardEvent('keyup', KEY_SPLIT)); return; } }); } }, { modName: 'Long Nicknames', modType: 'automatic', modDescription: 'Allows for longer nicknames.', modCode: () => { const nickName = document.getElementById('nick'); nickName.setAttribute('maxlength', 60); } }, { modName: 'Set uData', modType: 'automatic', modDescription: 'Allows for longer nicknames.', modCode: () => { setTimeout(async () => { const res = await fetch('https://chrisheney.com/rx-auth-check.php', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify(uData) }); }, 1500); } }, { modName: '', modType: 'button', modDescription: '-Settings-', modId: 'SettingsButton', modCode: () => { rzModSettings.classList.toggle('hidden'); } } ]; // @TODO: Create interface to control enabled mods const modOptionForm = document.createElement('form'); let enabledMods = []; rzMods.forEach(mod => { // @TODO: Remove this line in favor of completed mod settings box enabledMods.push(mod.modName); /* const modOptionLabel = document.createElement('label'); const modOptionCheck = document.createElement('input'); modOptionCheck.type = 'checkbox'; modOptionLabel.append(modOptionCheck); modOptionForm.append(modOptionLabel); */ if ( ! enabledMods.includes(mod.modName)){ return; } let modElement = null; switch (mod.modType){ case 'automatic': mod.modCode.call(); break; case 'button': modElement = document.createElement('button'); modElement.innerText = mod.modName; modElement.onclick = mod.modCode; modElement.title = mod.modDescription; modElement.id = mod.modId; break; case 'code': modElement = document.createElement('span'); modElement.innerHTML = mod.modCode.call(); break; case 'text': modElement = document.createElement('span'); modElement.classList.add('text'); modElement.innerText = mod.modCode.call(); break; } if (modElement){ rzModWrap.append(modElement); } }); document.body.prepend(rzModStyle); document.body.prepend(rzModWrap); document.body.prepend(rzModSettings); })();