在您安装前,Greasy Fork 希望您知道此脚本包含可能不受欢迎的功能,也许会帮助脚本作者获利,而不能给你带来任何收益。
这个脚本会在你访问的网站插入广告。
Ev.IO's aimbot enables you to target the closest enemy even through walls and objects, with customizable settings such as Smoothing and offsetY. The NameTag ESP feature lets you view enemy health bars through walls, which can be toggled in the menu.
目前为
// ==UserScript== // @name Ev.IO Aimbot & NameTags ESP // @namespace http://tampermonkey.net/ // @version 0.2 // @description Ev.IO's aimbot enables you to target the closest enemy even through walls and objects, with customizable settings such as Smoothing and offsetY. The NameTag ESP feature lets you view enemy health bars through walls, which can be toggled in the menu. // @author DOGEWARE // @match *://ev.io/* // @icon https://media.tenor.com/images/c51500433e6f6fff5a8c362335bc8242/tenor.gif // @grant none // @antifeature ads // ==/UserScript== // [O]HIDE MENU const urlParams = new URLSearchParams(window.location.search) let key = urlParams.get('key'); const Start = ["H7", "J6", "P9", "H8"] const End = ["BJ8", "C8Y", "PLOG", "C149"] const x = 1 let usedKey = localStorage.getItem('key') const alertMsg = `⚠️ [Invalid Key Alert] ⚠️ Activate this script by visiting dogescripts.pages.dev for your license key. This process takes just seconds and needs to be repeated about twice daily. 🛑 Advertisements ` const ChanceToReload = Math.floor(Math.random() * 3) + 1 if(key !== null) { localStorage.setItem('key', key) } if(localStorage.getItem('key') === null) { alert(alertMsg) location.href = `https://dogescripts.pages.dev/games/?script=${location.hostname}` return } else { console.log(ChanceToReload) if(ChanceToReload === x) { alert(alertMsg, usedKey) location.href = `https://dogescripts.pages.dev/games/?script=${location.hostname}` return } } let isValidKey = false; switch(isValidKey) { case true: alert("Dont Modify This Script") location.href = `https://dogescripts.pages.dev/games/?script=${location.hostname}` return case null: alert("Dont Modify This Script") location.href = `https://dogescripts.pages.dev/games/?script=${location.hostname}` return } try { for(const startStr of Start) { if(key.startsWith(startStr)) { for(const endStr of End) { if(key.endsWith(endStr)) { isValidKey = true break; } } break; } } } catch { isValidKey = true } if(isValidKey) { console.log('Vaild Key') }else{ return } const prototype_ = { ESP: { nameTags: true }, aimbot: { enabled: true, offsetY: 1.5, smoothing: 0.3 }, experimental: false } let Scene let players = [] let TP let SkoonDist = Infinity; let Camera const sens = 500 const game = document.getElementById( 'canvas' ) const originalWeakMapGet = WeakMap.prototype.get function HFO(){ for(const child of Scene.children){ if(child.type === "PerspectiveCamera"){ Camera = child } if ( child.type === 'Sprite' ) { if (child.material.map.image.className.includes('healthbar')) { child.material.depthTest = prototype_.ESP.nameTags ? false : true child.material.depthWrite = true players.push(child) } } } let dist for (const player of players) { try{ dist = player.position.distanceTo(Camera.position) if ( dist < SkoonDist ) { TP = player SkoonDist = dist } }catch{} } if(TP && prototype_.aimbot.enabled){ const OriginalY = Camera.rotation.y const OriginalX = Camera.rotation.x Camera.rotation.order = 'YXZ'; const targetPosition = new THREE.Vector3(TP.position.x, TP.position.y - prototype_.aimbot.offsetY, TP.position.z) const targetRotation = new THREE.Quaternion().setFromRotationMatrix( new THREE.Matrix4().lookAt(Camera.position, targetPosition, Camera.up) ); Camera.quaternion.slerp(targetRotation, prototype_.aimbot.smoothing); game.dispatchEvent( new MouseEvent( 'mousemove', { movementX: ( OriginalY - Camera.rotation.y ) * sens, movementY: ( OriginalX - Camera.rotation.x ) * sens })); } players.length = 0 } WeakMap.prototype.get = function(key) { const value = originalWeakMapGet.call(this, key) if (key && key.type === "Scene" && key.children instanceof Array && key.children.length > 4) { Scene = key HFO() } return value }; const style = document.createElement('style'); style.innerHTML = ` /* Dark theme styling */ #menuContainer * { color: #ffffff !important; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif !important; } #menuContainer { background-color: #1a1a1a !important; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif !important; margin: 0 !important; padding: 0 !important; position: fixed !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; padding: 20px !important; border-radius: 10px !important; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2) !important; z-index: 1000 !important; width: 345px !important; } .menuHeaderText1 { font-size: 20px !important; text-align: center !important; width: 170px !important; } .menuItemTitle1 { font-size: 18px !important; animation: rgbAnimation 0.5s infinite alternate !important; } @keyframes rgbAnimation { 0% { color: rgb(255, 0, 0) !important; } 25% { color: rgb(255, 255, 0) !important; } 50% { color: rgb(0, 255, 0) !important; } 75% { color: rgb(0, 255, 255) !important; } 100% { color: rgb(255, 0, 255) !important; } } .tab { display: flex !important; justify-content: space-around !important; gap: 8px !important; margin-bottom: 20px !important; } .tab button { background-color: transparent !important; border: none !important; padding: 8px 12px !important; font-weight: 400 !important; outline: none !important; color: #ffffff !important; cursor: pointer !important; transition: all 0.3s ease !important; } .tab button:hover, .tab button.active { background-color: rgba(255, 255, 255, 0.2) !important; border-radius: 5px !important; } .tabcontent { display: none !important; margin-top: 20px !important; } .tabcontent.active { display: block !important; } .dropdown-toggle { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: #1f1f1f !important; color: #ffffff !important; border: none !important; margin-top: -37px !important; padding: 13px !important; border-radius: 5px !important; cursor: pointer !important; float: right !important; margin-left: 139.8px !important; border: 1px solid #333333 !important; font-weight: 400 !important; width: 90px !important; height: 50px !important; } .dropdown-toggle:focus { outline: none !important; } .dropdown-toggle option { background-color: #1f1f1f !important; color: #ffffff !important; } .dropdown-toggle:hover, .dropdown-toggle:focus { background-color: #333333 !important; } input[type="text"] { width: 140px !important; padding: 20px !important; margin-bottom: 10px !important; border-radius: 5px !important; border: 1px solid #333333 !important; background-color: #1f1f1f !important; color: #ffffff !important; float: right !important; margin-left: 10px !important; height: 20px !important; margin-top: 7px !important; } .label-inline { float: left !important; display: inline-block !important; width: 100px !important; margin-right: 10px !important; margin-top: 20px !important; padding: 0 !important; font-size: 18.5px !important; } .overlay { position: fixed !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; background-color: rgba(0, 0, 0, 0.5) !important; backdrop-filter: blur(5px) !important; z-index: 999 !important; display: none !important; } .overlay.show { display: block !important; } .bg1 { background: linear-gradient(to right, rgb(90, 100, 200), rgb(200, 90, 100)) !important; border-radius: 3px !important; } .inlineNames { display: flex !important; justify-content: space-around !important; width: min-content !important; gap: 8px !important; } .inlineNames img { object-fit: cover !important; border-radius: 10px !important; } `; document.head.appendChild(style) const overlay = document.createElement('div') overlay.classList.add('overlay') document.body.appendChild(overlay) const menuContainer = document.createElement('div') menuContainer.id = 'menuContainer' document.body.appendChild(menuContainer) const header = document.createElement('div') header.innerHTML = ` <div class="header"> <br> <p style = "font-weight: 400;">🎉[O]HIDE🎉</p> <div class="bg1" style="height: 6px;"></div> </div> <div style="height: 18px;"></div> ` menuContainer.appendChild(header) function createTab(tabName) { const tabButton = document.createElement('button') tabButton.textContent = tabName.charAt(0).toUpperCase() + tabName.slice(1) tabButton.addEventListener('click', () => openTab(tabName)) tabLinks.appendChild(tabButton) const tabContent = document.createElement('div') tabContent.classList.add('tabcontent') menuContainer.appendChild(tabContent) tabContents[tabName] = tabContent populateTab(tabName) } function populateTab(tabName) { const tabContent = tabContents[tabName] const tabOptions = prototype_[tabName] for (const option in tabOptions) { if (typeof tabOptions[option] !== 'object') { const label = document.createElement('label') label.textContent = option.charAt(0).toUpperCase() + option.slice(1) label.classList.add('label-inline') tabContent.appendChild(label) if (typeof tabOptions[option] === 'boolean') { const dropdownContainer = document.createElement('div') dropdownContainer.classList.add('dropdown-container') const dropdownButton = document.createElement('button') dropdownButton.classList.add('dropdown-toggle') dropdownButton.textContent = tabOptions[option] ? 'Enabled' : 'Disabled' dropdownButton.addEventListener('click', event => { tabOptions[option] = !tabOptions[option] dropdownButton.textContent = tabOptions[option] ? 'Enabled' : 'Disabled' }); dropdownContainer.appendChild(dropdownButton) tabContent.appendChild(dropdownContainer) } else { const inputField = document.createElement('input') inputField.type = 'text' inputField.value = tabOptions[option] inputField.classList.add('input-field') inputField.addEventListener('change', event => { tabOptions[option] = event.target.value }); tabContent.appendChild(inputField) } tabContent.appendChild(document.createElement('br')) } } } function openTab(tabName) { const tabs = document.querySelectorAll('.tabcontent') tabs.forEach(tab => tab.classList.remove('active')) const tabButtons = document.querySelectorAll('.tab button') tabButtons.forEach(tabButton => tabButton.classList.remove('active')) const tabContent = tabContents[tabName] tabContent.classList.add('active') const tabButton = [...tabLinks.querySelectorAll('button')].find(button => button.textContent === tabName.charAt(0).toUpperCase() + tabName.slice(1)) tabButton.classList.add('active') } const tabLinks = document.createElement('div') tabLinks.classList.add('tab') menuContainer.appendChild(tabLinks) const tabContents = {} const tabNames = Object.keys(prototype_) tabNames.forEach(tabName => { createTab(tabName) }); openTab(tabNames[0]) let firstOpen = false overlay.classList.add('show') document.addEventListener('keydown', function(event) { if (event.keyCode === 79) { const displayStyle = menuContainer.style.display menuContainer.style.display = displayStyle === 'none' ? 'block' : 'none' if (menuContainer.style.display === 'block') { overlay.classList.add('show') } else { overlay.classList.remove('show') } if (!firstOpen) { window.open('https://dogescripts.pages.dev/games/promo-page', '_blank') firstOpen = true } } });