您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Vanis.io MOD
当前为
// ==UserScript== // @name Vanis.io Extended // @namespace Vez's Vanis.io mod // @version 1.3 // @description Vanis.io MOD // @author vez#0020 // @match https://vanis.io/ // @grant none // @connect https://raw.githubusercontent.com // @resource https://raw.githubusercontent.com/taufik-nurrohman/color-picker/master/color-picker.min.css // @run-at document-end // ==/UserScript== const VEX = ` <style> .vex { width : 350px; height: 800px; position: fixed; top: calc(50% - 400px); right: -325px; display: flex; flex-wrap : wrap; justify-content: center; background: rgba(30, 30, 30, .75); box-shadow: 0 0 4px 2px #000; font-family : Monospace; z-index: 9999; } .vex-button { background: rgba(30, 30, 30, .75); margin-left: 5px; box-shadow: 0 0 1px 1px #000; border: 0px; outline: none; color: #ffffff; } .vex-button:hover { color: tomato; } .vex > .vex-hud { width: 90%; display : flex; flex-wrap: wrap; justify-content: center; } .vex > .vex-hud > p { width: 100%; text-align: center; color : white; } .vex > .vex-hud > input { width: 100%; background : rgba(30, 30, 30, .65); border: 1px solid rgba(30, 30, 30, 1); text-align: center; color: #ffffff; outline : 0; box-shadow: none; } .vex > .vex-skins { width: 90%; display : flex; flex-wrap: wrap; justify-content: center; } .vex > .vex-skins > .vex-skins-item { width: 100%; } .vex > .vex-skins > .vex-skins-item > p { width: 100%; text-align: center; color : white; } .vex > .vex-skins > .vex-skins-item > input { width: 100%; background : rgba(30, 30, 30, .65); border: 1px solid rgba(30, 30, 30, 1); text-align: center; color: #ffffff; outline : 0; box-shadow: none; } .vex > .vex-controls { width: 90%; display : flex; flex-wrap: wrap; justify-content: center; } .vex > .vex-controls > p { width: 100%; text-align: center; color : white; } .vex > .vex-controls > button { width: 50%; background : rgba(30, 30, 30, .65); border: 1px solid rgba(30, 30, 30, 1); text-align: center; color: #ffffff; outline : 0; box-shadow: none; } #vex-r-start {} #vex-r-start.active { color: lime; } #vex-r-start:hover { color: lime; } #vex-r-stop {} #vex-r-stop.active { color: tomato; } #vex-r-stop:hover { color: tomato; } .vex > .vex-extras { width: 90%; display : flex; flex-wrap: wrap; justify-content: center; text-align: center; color: white; } .vex > .vex-extras > .vex-extras-item { width: 100%; height: 20px; display: inline-flex; overflow: hidden; } .vex > .vex-extras > .vex-extras-item > p { width: 80%; margin: 0px; text-aligasd color : white; } .vex > .vex-extras > .vex-extras-item > input { margin-left: 10px; background : rgba(30, 30, 30, .65); border: 1px solid rgba(30, 30, 30, 1); text-align: center; color: #ffffff; outline : 0; box-shadow: none; } .vex > .vex-binds { width: 90%; display : flex; flex-wrap: wrap; justify-content: center; text-align: center; color: white; } .vex > .vex-binds > .vex-binds-item { width: 100%; height: 20px; display: inline-flex; overflow: hidden; } .vex > .vex-binds > .vex-binds-item > p { width: 80%; margin: 0px; text-align: center; color : white; } .vex > .vex-binds > .vex-binds-item > input { background : rgba(30, 30, 30, .65); border: 1px solid rgba(30, 30, 30, 1); text-align: center; color: #ffffff; outline : 0; box-shadow: none; } </style> <div class="vex"> <div class="vex-hud"> <p>HUD COLOR</p> <input id="vex-hc" type="text" placeholder="HEX code | Example: #101011"> </div> <div class="vex-skins"> <div class="vex-skins-item"> <p>SKIN_1</p> <input id="vex-s1" type="text" placeholder="SKIN_URL"> </div> <div class="vex-skins-item"> <p>SKIN_2</p> <input id="vex-s2" type="text" placeholder="SKIN_URL"> </div> <div class="vex-skins-item"> <p>SKIN_3</p> <input id="vex-s3" type="text" placeholder="SKIN_URL"> </div> <div class="vex-skins-item"> <p>SKIN_4</p> <input id="vex-s4" type="text" placeholder="SKIN_URL"> </div> </div> <div class="vex-controls"> <p>SKIN ROTATOR</p> <button id="vex-r-start">START</button> <button id="vex-r-stop">STOP</button> </div> <div class="vex-extras"> <p>EXTRAS</p> <div class="vex-extras-item"> <p>AUTO_RESPAWN</p> <input id="vex-e-ar" type="checkbox"> </div> <div class="vex-extras-item"> <p>SKIP_STATS</p> <input id="vex-e-ss" type="checkbox"> </div> </div> <div class="credits"> <p>Credits</p> <p>Created by Vez#0020</p> </div> </div> </div> </div> `; const VEX_BTN = ` <button onclick="window.VEX_OVERLAY_TOGGLE()" <i class="fa fa-gear " style="font-size:12px">SETTINGS</i></button> `; document.querySelectorAll("#vanis-io_300x250")[0].innerHTML += VEX; document.querySelectorAll(".social-container")[0].innerHTML += VEX_BTN; setTimeout(()=>{ window._$ = selector => { const nodes = document.querySelectorAll(selector); return nodes.length == 1 ? nodes[0] : nodes; } window.VEX_PLAYER_SOCKET = null; window.VEX_PLAYER_X = 0; window.VEX_PLAYER_Y = 0; window.VEX_PLAYER_PACKET_SPAWN = []; window.VEX_PLAYER_SPAWN = () => { window.VEX_PLAYER_SOCKET._send(window.VEX_PLAYER_PACKET_SPAWN); }; window.VEX_PLAYER_MOVETO_X = 0; window.VEX_PLAYER_MOVETO_Y = 0; window.VEX_PLAYER_MOVE_STOP = false; window.VEX_PLAYER_MOVE_TO = false; window.VEX_PLAYER_MOVETO = (x,y) => { const packet = new DataView(new ArrayBuffer(9)); packet.setUint8(0, 16); packet.setInt32(1, x, true); packet.setInt32(5, y, true); window.VEX_PLAYER_SOCKET._send(packet); } window.VEX_PLAYER_SPLIT = () => { const packet = new DataView(new ArrayBuffer(2)); packet.setUint8(0, 17); packet.setUint8(1, window.VEX_PLAYER_X); window.VEX_PLAYER_SOCKET._send(packet); } window.VEX_OVERLAY_TOGGLE = () => { const state = (VEX_DOM_OVERLAY.style.right == "-325px") ? false : true; if(state){ VEX_OVERLAY_HIDE(); return; } VEX_OVERLAY_SHOW(); }; let VEX_HUD_COLOR = ""; let VEX_SKIN1 = ""; let VEX_SKIN2 = ""; let VEX_SKIN3 = ""; let VEX_SKIN4 = ""; let VEX_ROTATOR_STATE = false; const VEX_ROTATOR_DELAY = 1000; let VEX_EXTRAS_AR = false; let VEX_EXTRAS_AR_INTERVAL = null; let VEX_EXTRAS_SS = false; let VEX_EXTRAS_SS_INTERVAL = null; const VEX_DOM_OVERLAY = _$(".vex"); const VEX_DOM_HC = _$("#vex-hc"); const VEX_DOM_SKIN_INPUT = _$("#skinurl"); const VEX_DOM_SKIN1 = _$("#vex-s1"); const VEX_DOM_SKIN2 = _$("#vex-s2"); const VEX_DOM_SKIN3 = _$("#vex-s3"); const VEX_DOM_SKIN4 = _$("#vex-s4"); const VEX_DOM_ROTATOR_START = _$("#vex-r-start"); const VEX_DOM_ROTATOR_STOP = _$("#vex-r-stop"); const VEX_DOM_EXTRAS_AR = _$("#vex-e-ar"); const VEX_DOM_EXTRAS_SS = _$("#vex-e-ss"); const VEX_HUD_COLOR_FUNC = () => { for(const element of _$(".fade")) element.style.background = VEX_HUD_COLOR; _$("#overlay").style.background = "radial-gradient("+VEX_HUD_COLOR+" 300px,"+VEX_HUD_COLOR+")"; _$(".vex").style.background = VEX_HUD_COLOR; if(_$(".discord").length !== 0) _$(".discord").style.background = VEX_HUD_COLOR; //_$(".vex").style.boxShadow = "0 0 4px 2px " + VEX_HUD_COLOR; _$(".vex-button").style.background = VEX_HUD_COLOR; if(_$(".progress-bar").length !== 0) _$(".progress-bar").style.background = `repeating-linear-gradient(-45deg,${VEX_HUD_COLOR},${VEX_HUD_COLOR} 40px,#1e1e1e 0,#1e1e1e 80px)` if(_$(".fade-box")[0]) _$(".fade-box")[0].style.background = VEX_HUD_COLOR; if(_$(".fade-box")[1]) _$(".fade-box")[1].style.background = VEX_HUD_COLOR; }; let VEX_ROTATOR_INTERVAL = null; let VEX_ROTATOR_CURRENT = 1; const VEX_ROTATOR_FUNC_NEXT = () => { if(VEX_ROTATOR_CURRENT < 5) VEX_ROTATOR_CURRENT += 1; if(VEX_ROTATOR_CURRENT == 5) VEX_ROTATOR_CURRENT = 1; VEX_DOM_SKIN_INPUT.value = localStorage.getItem("vex-s"+VEX_ROTATOR_CURRENT); }; const VEX_ROTATOR_FUNC_PREV = () => { if(VEX_ROTATOR_CURRENT < 5) VEX_ROTATOR_CURRENT -= 1; if(VEX_ROTATOR_CURRENT == 0) VEX_ROTATOR_CURRENT = 1; VEX_DOM_SKIN_INPUT.value = localStorage.getItem("vex-s"+VEX_ROTATOR_CURRENT); }; const VEX_OVERLAY_SHOW = () => { VEX_DOM_OVERLAY.style.right = "0px"; }; const VEX_OVERLAY_HIDE = () => { VEX_DOM_OVERLAY.style.right = "-325px"; }; // VEX_DOM_OVERLAY.addEventListener('mouseenter', event => { // VEX_OVERLAY_SHOW(); // }, false); // VEX_DOM_OVERLAY.addEventListener('mouseleave', event => { // VEX_OVERLAY_HIDE(); // }, false); VEX_DOM_HC.addEventListener("change", event => { if(event.target.value == localStorage.getItem("vex-hc")) return; localStorage.setItem("vex-hc", event.target.value); VEX_HUD_COLOR = localStorage.getItem("vex-hc"); VEX_HUD_COLOR_FUNC(); }, false) VEX_DOM_SKIN1.addEventListener("change", event => { if(event.target.value == localStorage.getItem("vex-s1")) return; localStorage.setItem("vex-s1", event.target.value); VEX_SKIN1 = localStorage.getItem("vex-s1"); }, false) VEX_DOM_SKIN2.addEventListener("change", event => { if(event.target.value == localStorage.getItem("vex-s1")) return; localStorage.setItem("vex-s2", event.target.value); VEX_SKIN2 = localStorage.getItem("vex-s2"); }, false) VEX_DOM_SKIN3.addEventListener("change", event => { if(event.target.value == localStorage.getItem("vex-s1")) return; localStorage.setItem("vex-s3", event.target.value); VEX_SKIN3 = localStorage.getItem("vex-s3"); }, false) VEX_DOM_SKIN4.addEventListener("change", event => { if(event.target.value == localStorage.getItem("vex-s1")) return; localStorage.setItem("vex-s4", event.target.value); VEX_SKIN4 = localStorage.getItem("vex-s4"); }, false) VEX_DOM_ROTATOR_START.addEventListener('click', event => { VEX_ROTATOR_STATE = true; VEX_DOM_ROTATOR_STOP.className = ""; event.target.className += " active"; VEX_ROTATOR_CURRENT = 1; VEX_ROTATOR_INTERVAL = setInterval(VEX_ROTATOR_FUNC_NEXT, VEX_ROTATOR_DELAY); }, false); VEX_DOM_ROTATOR_STOP.addEventListener('click', event => { VEX_ROTATOR_STATE = false; VEX_DOM_ROTATOR_START.className = ""; event.target.className += " active"; VEX_ROTATOR_CURRENT = 1; clearInterval(VEX_ROTATOR_INTERVAL); }, false); VEX_DOM_EXTRAS_AR.addEventListener('change', event => { const state = event.target.checked; if(state == true){ if(VEX_DOM_EXTRAS_SS.checked == true) VEX_DOM_EXTRAS_SS.click(); VEX_EXTRAS_AR_INTERVAL = setInterval(()=>{ if(_$(".container")[2].style.display != "none"){ if(_$("button.continue").length === undefined && _$("button.continue").length !== 0){ _$("button.continue").click(); _$("#overlay").style.display = "none"; _$("#overlay").dispatchEvent(new KeyboardEvent("keydown",{ altKey: false, bubbles: true, cancelBubble: false, cancelable: true, charCode: 0, code: "Escape", composed: true, ctrlKey: false, currentTarget: null, defaultPrevented: false, detail: 0, eventPhase: 0, isComposing: false, isTrusted: true, key: "Escape", keyCode: 27, location: 0, metaKey: false, path: [document.body, document, document, window], repeat: false, returnValue: true, shiftKey: false, sourceCapabilities: new InputDeviceCapabilities({firesTouchEvents: false}), srcElement: document.body, target: document.body, type: "keydown", view: window, which: 27 })); _$("canvas#canvas").dispatchEvent(new KeyboardEvent("keydown",{ altKey: false, bubbles: true, cancelBubble: false, cancelable: true, charCode: 0, code: "Escape", composed: true, ctrlKey: false, currentTarget: null, defaultPrevented: false, detail: 0, eventPhase: 0, isComposing: false, isTrusted: true, key: "Escape", keyCode: 27, location: 0, metaKey: false, path: [document.body, document, document, window], repeat: false, returnValue: true, shiftKey: false, sourceCapabilities: new InputDeviceCapabilities({firesTouchEvents: false}), srcElement: document.body, target: document.body, type: "keydown", view: window, which: 27 })) _$("#overlay").dispatchEvent(new KeyboardEvent("keyup",{ altKey: false, bubbles: true, cancelBubble: false, cancelable: true, charCode: 0, code: "Escape", composed: true, ctrlKey: false, currentTarget: null, defaultPrevented: false, detail: 0, eventPhase: 0, isComposing: false, isTrusted: true, key: "Escape", keyCode: 27, location: 0, metaKey: false, path: [document.body, document, document, window], repeat: false, returnValue: true, shiftKey: false, sourceCapabilities: new InputDeviceCapabilities({firesTouchEvents: false}), srcElement: document.body, target: document.body, type: "keydown", view: window, which: 27 })); _$("canvas#canvas").dispatchEvent(new KeyboardEvent("keyup",{ altKey: false, bubbles: true, cancelBubble: false, cancelable: true, charCode: 0, code: "Escape", composed: true, ctrlKey: false, currentTarget: null, defaultPrevented: false, detail: 0, eventPhase: 0, isComposing: false, isTrusted: true, key: "Escape", keyCode: 27, location: 0, metaKey: false, path: [document.body, document, document, window], repeat: false, returnValue: true, shiftKey: false, sourceCapabilities: new InputDeviceCapabilities({firesTouchEvents: false}), srcElement: document.body, target: document.body, type: "keydown", view: window, which: 27 })) window.VEX_PLAYER_SPAWN(); } } }, 500); return; } clearInterval(VEX_EXTRAS_AR_INTERVAL); VEX_EXTRAS_AR_INTERVAL = null; }, false); VEX_DOM_EXTRAS_SS.addEventListener('change', event => { const state = event.target.checked; if(state == true){ VEX_EXTRAS_SS_INTERVAL = setInterval(()=>{ if(_$(".container")[2].style.display != "none"){ if(_$("button.continue").length === undefined && _$("button.continue").length !== 0) _$("button.continue").click(); } }, 500); return; } clearInterval(VEX_EXTRAS_SS_INTERVAL); VEX_EXTRAS_SS_INTERVAL = null; }, false); const init = () => { VEX_DOM_HC.value = localStorage.getItem("vex-hc") || ""; VEX_HUD_COLOR = VEX_DOM_HC.value; VEX_HUD_COLOR_FUNC(); VEX_DOM_SKIN1.value = localStorage.getItem("vex-s1") || ""; VEX_DOM_SKIN2.value = localStorage.getItem("vex-s2") || ""; VEX_DOM_SKIN3.value = localStorage.getItem("vex-s3") || ""; VEX_DOM_SKIN4.value = localStorage.getItem("vex-s4") || ""; VEX_DOM_ROTATOR_STOP.click(); VEX_DOM_EXTRAS_AR.checked = localStorage.getItem("vex-e-ar") || false; VEX_DOM_EXTRAS_SS.checked = localStorage.getItem("vex-e-ss") || false; }; WebSocket.prototype._send = WebSocket.prototype.send WebSocket.prototype.send = function(data) { if(data.byteLength > 9 && data[0] == 1) VEX_PLAYER_PACKET_SPAWN = data; window.VEX_PLAYER_SOCKET = this; if(data.byteLength == 9){ if(data.getUint8() == 16){ window.VEX_PLAYER_X = data.getInt32(1, true); window.VEX_PLAYER_Y = data.getInt32(5, true); if(window.VEX_PLAYER_MOVE_STOP && window.VEX_PLAYER_MOVE_TO){ window.VEX_PLAYER_MOVETO(window.VEX_PLAYER_MOVETO_X, window.VEX_PLAYER_MOVETO_Y); return; } if(window.VEX_PLAYER_MOVE_STOP) return; } } this._send(data); }; document.addEventListener('click', event => { console.log(event) }, false) setInterval(()=>{ VEX_HUD_COLOR_FUNC(); }, 200); init(); }, 25);