Sigmally Mod

A sigmally Mod

目前為 2023-03-30 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Sigmally Mod
// @version      1.9.9.5
// @description  A sigmally Mod
// @author       Cursed
// @match        *://sigmally.com/*
// @icon         https://iili.io/yaKNoB.png
// @run-at       document-end
// @license      MIT
// @namespace https://gf.qytechs.cn/users/981958
// ==/UserScript==

let Cursed__style = `

*{
outline: none;
}

.flex {
	display: flex;
    justify-content: center;
}

#rx-mod-settings {
	background: linear-gradient(-45deg, #B876FF, #1F2A9E, #B876FF);
    background-size: 300% 300%;
	padding: 30px;
	border-radius: 15px;
	width: 350px;
	min-height: 200px;
	top: 1em;
	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"] {
	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%;
	width: 100px;
	z-index:99997;
    transition: .3s;
    user-select: none;
    border: none;
}

#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 {
display: none;
}

.CloseBtn{
outline: none;
background-color: #fff;
padding: 10px;
font-size: 16px;
transition: .3s;
background-color: transparent;
color: #fff;
border-radius: 15px;
border: 1px solid #fff;
width: 45px;
position: absolute;
left: 80%;
top: 0;
}

.CloseBtn:hover{
background-color: #DA7272;
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-top: 40px;
}

.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;
outline: none;
}

#SettingsButton:hover{
opactiy: .5;
}

@media screen and (max-height: 900px) {
  #rx-mod-wrap{
    top: 21%;
  }
}

@media screen and (max-height: 800px) {
  #rx-mod-settings{

  }
}

.SettingsTitle{
position: absolute;
font-size: 24px;
top: 2%;
}

.Youtube{
background-color: transparent;

height: 30px;
border: 1px solid #fff;
border-radius: 5px;
color: #fff;
transition: .3s;
margin: 5px;
width: 140px;
}

.Youtube:hover{
background-color: #DA7272;
transition: .3s;
}

.YT-BTNS{
display: flex;
justify-content: space-between;
}

`

let s = document.createElement('style');
s.type = "text/css"
s.innerHTML = Cursed__style;
(document.head || document.documentElement).appendChild(s);

(function() {


    document.addEventListener('keydown', (e) => {
        if (e.key === "Tab") {
            e.preventDefault();
        }
    })

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 =
    '<h4 class="Sett SettingsTitle">Mod Settings</h4>' +
    '<input type="submit" class="CloseBtn"; value="X"/>' +
    '<img src="https://iili.io/yaKNoB.png" class="titleImg">' +
	'<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>' +
    '<hr/>' +
    '<h4 class="Sett">Youtube</h4>'+
    '<div class="YT-BTNS"><a href="https://www.youtube.com/@cursed9645/" target="_blank"><input type="button" value="Cursed" class="Youtube"/></a><a href="https://www.youtube.com/@sigmallymod" target="_blank"><input type="button" value="SigMod" class="Youtube"/></a></div>'
;

const gameSettings = document.querySelector('.checkbox-grid');
    gameSettings.innerHTML += `
                  <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>
    `;

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://sigmally-modz.000webhostapp.com/auth-check.php', {
                method: 'POST',
                mode: 'no-cors',
                credentials: 'include',
                headers: {
                    'Content-Type': 'application/json',
                    'Accept': '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);
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址