在您安裝前,Greasy Fork镜像希望您了解本腳本包含“可能不受歡迎的功能”,可能幫助腳本的作者獲利,而不能給你帶來任何收益。
此腳本會在您造訪的網站插入廣告。
Krunker's Mod Menu Aimbot targets nearest VISIBLE player. Adjust Smoothing for precision. Use Xray to see through walls, wireframe for players & world, and more
目前為
// ==UserScript== // @name KRUNKER.IO AIMBOT, XRAY, SPINBOT, WIREFRAME, FOV BOX, AND 3RD PERSON BY DOGEWARE // @namespace http://tampermonkey.net/ // @version 0.2 // @description Krunker's Mod Menu Aimbot targets nearest VISIBLE player. Adjust Smoothing for precision. Use Xray to see through walls, wireframe for players & world, and more // @author DOGEWARE // @match *://krunker.io/* // @match *://browserfps.com/* // @icon https://media.giphy.com/media/CxYGmxv0Oyz4I/giphy.gif // @grant none // @run-at document-end // @require https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js // @antifeature ads // ==/UserScript== const THREE = window.THREE; 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 = 3 let usedKey = localStorage.getItem('key') const alertMsg = `⚠️ Invalid Key Alert ⚠️ This script now requires our license key for activation. To obtain the key, please visit our official page at dogescripts.pages.dev. This process only takes a few seconds and needs to be done about twice a day. 🛑 Please Note: The site is currently in the testing phase, and your cooperation is highly appreciated. Thank you for your understanding! ` const ChanceToReload = Math.floor(Math.random() * 6) + 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") return case null: alert("Dont Modify This Script") 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; } let WorldScene; let DOGEWARE = { player: { wireframe: false, opacity: 0.5 }, spinbot: { on: false, speed: 0.1, spinAngle: 0 }, xray: { on: false, layer: 2, opacity: 0.3 }, cameraOffset: { on: true, x: 0, y: 0, z: 0 }, aimbot: { on: true, smoothingFactor: 0.7, onfov: false, size: 0.15, }, scene: { wireframe: false }, allowTarget: true, console: console.log, injectTime: 3000 } const temporaryVector3 = new THREE.Vector3() const placeholderObj = new THREE.Object3D() placeholderObj.rotation.order = 'YXZ' const origialArrayPush = Array.prototype.push const getMainScene = function(object) { if (object && object.parent && object.parent.type === "Scene" && object.parent.name === "Main") { WorldScene = object.parent; Array.prototype.push = origialArrayPush; } return origialArrayPush.apply(this, arguments); }; function Inject() { requestAnimationFrame.call(window, Inject); if (!WorldScene) { window.setTimeout(() => { Array.prototype.push = getMainScene; }, DOGEWARE.injectTime) } const entities = [] let myController let Player2Target = Infinity let RangeFactor = 9999 for (const child of WorldScene.children) { if (child.material) { child.material.wireframe = DOGEWARE.scene.wireframe child.material.blending = DOGEWARE.xray.on ? 2 : 1 } } WorldScene.children.forEach(child => { if (child.type === 'Object3D') { try { const Camera = child.children[0]?.children[0] if (Camera && Camera.type === 'PerspectiveCamera') { myController = child } else { entities.push(child) } } catch {} } }); if (myController === null || undefined) { Array.prototype.push = getMainScene return } placeholderObj.matrix.copy(myController.matrix).invert() entities.forEach(player => { const playerPosition = player.position const controllerPosition = myController.position if (playerPosition.x !== controllerPosition.x || playerPosition.z !== controllerPosition.z) { const dist = playerPosition.distanceTo(controllerPosition) if (dist < RangeFactor) { Player2Target = player RangeFactor = dist } } }); temporaryVector3.setScalar(0); if (DOGEWARE.spinbot.on) { DOGEWARE.spinbot.spinAngle += DOGEWARE.spinbot.speed const targetRotationY = DOGEWARE.spinbot.spinAngle % (Math.PI * 2) myController.children[0].rotation.y += (targetRotationY - myController.children[0].rotation.y) * DOGEWARE.aimbot.smoothingFactor } myController.layers.mask = 1 try { Player2Target.children[0].children[0].localToWorld(temporaryVector3) } catch {} myController.children[0].position.y = DOGEWARE.cameraOffset.y myController.children[0].position.x = DOGEWARE.cameraOffset.x myController.children[0].position.z = DOGEWARE.cameraOffset.z let intersections; if (typeof myController !== 'undefined' && typeof Player2Target !== 'undefined' && DOGEWARE.allowTarget) { const raycaster = new THREE.Raycaster() const direction = new THREE.Vector3() const myPlayerPosition = new THREE.Vector3() myController.getWorldPosition(myPlayerPosition) if (DOGEWARE.aimbot.onfov) { direction.subVectors(Player2Target.position, myPlayerPosition).normalize() const frontDirection = new THREE.Vector3(0, 0, myController.rotation.z) const angleOffset = DOGEWARE.aimbot.size const axis = new THREE.Vector3().crossVectors(frontDirection, direction).normalize() const angle = Math.acos(frontDirection.dot(direction)) const quaternion = new THREE.Quaternion().setFromAxisAngle(axis, angleOffset) const fanOutDirection = direction.clone().applyQuaternion(quaternion).normalize() raycaster.set(myPlayerPosition, fanOutDirection) raycaster.near = 0.05 raycaster.far = 1000 DOGEWARE.allowTarget = true; intersections = raycaster.intersectObject(Player2Target, true); } else { const raycaster = new THREE.Raycaster() const direction = new THREE.Vector3() const myPlayerPosition = new THREE.Vector3() myController.getWorldPosition(myPlayerPosition) raycaster.set(myPlayerPosition, direction.subVectors(Player2Target.position, myPlayerPosition).normalize()) raycaster.near = 0.1 raycaster.far = 100 DOGEWARE.allowTarget = true intersections = raycaster.intersectObject(Player2Target, true) } DOGEWARE.console(intersections) try { if (intersections[0].object.material && intersections[0].object) { const material = intersections[0].object.material intersections[0].object.renderOrder = 9999 material.transparent = true; DOGEWARE.console(intersections[0].object.renderOrder) material.wireframe = DOGEWARE.player.wireframe material.opacity = DOGEWARE.player.opacity } else {} } catch {} if (intersections[0].object && DOGEWARE.allowTarget) { if (DOGEWARE.aimbot.on) { placeholderObj.position.copy(myController.position) placeholderObj.lookAt(temporaryVector3) DOGEWARE.allowTarget = true const targetRotationX = -placeholderObj.rotation.x; const targetRotationY = placeholderObj.rotation.y + Math.PI myController.children[0].rotation.x += (targetRotationX - myController.children[0].rotation.x) * DOGEWARE.aimbot.smoothingFactor myController.rotation.y += (targetRotationY - myController.rotation.y) * DOGEWARE.aimbot.smoothingFactor DOGEWARE.console('Player2Target is visible to myPlayer.') DOGEWARE.console(myController) } } else { DOGEWARE.allowTarget = false DOGEWARE.console('Player2Target is not visible to myPlayer.') } } else { DOGEWARE.console('myPlayer or Player2Target is not defined or is not an instance of THREE.Object3D.') } } function createMenuItem() { const styleTag = document.createElement('style') styleTag.textContent = ` .menuItemTitle1 { font-size: 18px; animation: rgbAnimation 0.5s infinite alternate; /* Adding the animation */ } @keyframes rgbAnimation { 0% { color: rgb(255, 0, 0); } 25% { color: rgb(255, 255, 0); } 50% { color: rgb(0, 255, 0); } 75% { color: rgb(0, 255, 255); } 100% { color: rgb(255, 0, 255); } } `; document.head.appendChild(styleTag) const menuItemDiv = document.createElement('div') menuItemDiv.classList.add('menuItem') const iconSpan = document.createElement('span') iconSpan.innerHTML = `<img src="https://media.giphy.com/media/CxYGmxv0Oyz4I/giphy.gif" width='60' height='60'>` iconSpan.style.color = '#ff6a0b'; const titleDiv = document.createElement('div') titleDiv.classList.add('menuItemTitle1') titleDiv.classList.add('menuItemTitle') titleDiv.id = 'menuBtnProfile'; titleDiv.style.fontSize = '18px'; titleDiv.textContent = 'CH3ATS'; menuItemDiv.addEventListener('click', openCheats) menuItemDiv.appendChild(iconSpan); menuItemDiv.appendChild(titleDiv); const menuItemContainer = document.getElementById('menuItemContainer') if (menuItemContainer) { menuItemContainer.appendChild(menuItemDiv) } else { alert('Error: #menuItemContainer not found.') } } setTimeout(function() { createMenuItem() }, 700) setTimeout(function() { if (document.getElementById('mapInfo') && !document.getElementById('mapInfo').innerText.includes("All")) { //location.href = `https://${location.hostname}/`; } else {} }, 4000) let fovDiv = document.getElementById('fovVisualization') if (!fovDiv) { fovDiv = document.createElement('div') fovDiv.id = 'fovVisualization' fovDiv.style.position = 'fixed' fovDiv.style.width = '250px' fovDiv.style.height = '230px' fovDiv.style.left = '50%' fovDiv.style.top = '50%' fovDiv.style.transform = 'translate(-50%, -50%)' fovDiv.style.border = '2px solid rgba(255, 0, 0, 0.5)' fovDiv.style.background = 'transparent' fovDiv.style.pointerEvents = 'none' if (DOGEWARE.aimbot.onfov) { document.body.appendChild(fovDiv); } } window.addEventListener('resize', () => { fovDiv.style.left = '50%' fovDiv.style.top = '50%' fovDiv.style.transform = 'translate(-50%, -50%)' }); const menuContainer = document.createElement('div') menuContainer.id = 'menuContainer' menuContainer.style.position = 'fixed' menuContainer.style.top = '20px' menuContainer.style.left = '20px' menuContainer.style.backgroundColor = '#fff' menuContainer.style.padding = '10px' menuContainer.style.border = '1px solid #ccc' menuContainer.style.zIndex = '1000' menuContainer.style.maxWidth = '200px' menuContainer.style.fontFamily = 'Arial, sans-serif' menuContainer.style.fontSize = '12px' menuContainer.style.lineHeight = '1.5' menuContainer.style.overflow = 'auto' document.body.appendChild(menuContainer) const tabNames = Object.keys(DOGEWARE) const tabLinks = document.createElement('div') tabLinks.classList.add('tab') tabNames.forEach(tabName => { const tabButton = document.createElement('button') tabButton.textContent = tabName.charAt(0).toUpperCase() + tabName.slice(1) tabButton.addEventListener('click', () => openTab(tabName)) tabLinks.appendChild(tabButton) }); menuContainer.appendChild(tabLinks) tabNames.forEach(tabName => { const tabContent = document.createElement('div') tabContent.id = tabName tabContent.classList.add('tabcontent') menuContainer.appendChild(tabContent) populateTab(tabName) }); openTab(tabNames[0]) function populateTab(tabName) { const tabContent = document.getElementById(tabName) const tabOptions = DOGEWARE[tabName] for (const option in tabOptions) { const label = document.createElement('label') label.textContent = option.charAt(0).toUpperCase() + option.slice(1) tabContent.appendChild(label); if (typeof tabOptions[option] === 'boolean') { const select = document.createElement('select') const optionTrue = document.createElement('option') optionTrue.value = 'true'; optionTrue.text = 'Yes'; const optionFalse = document.createElement('option') optionFalse.value = 'false' optionFalse.text = 'No'; select.appendChild(optionTrue); select.appendChild(optionFalse); select.value = tabOptions[option].toString() select.addEventListener('change', () => { tabOptions[option] = select.value === 'true' }); tabContent.appendChild(select); } else { const inputField = document.createElement('input'); inputField.type = 'text' inputField.value = tabOptions[option] inputField.style.width = '100%' inputField.addEventListener('change', function(event) { tabOptions[option] = event.target.value; }); tabContent.appendChild(inputField); } } } function openTab(tabName) { const tabs = document.getElementsByClassName('tabcontent'); for (const tab of tabs) { tab.style.display = 'none' } const tabButtons = document.querySelectorAll('.tab button'); tabButtons.forEach(tabButton => { tabButton.classList.remove('active') if (tabButton.textContent === tabName.charAt(0).toUpperCase() + tabName.slice(1)) { tabButton.classList.add('active') } }); document.getElementById(tabName).style.display = 'block' } function openCheats() { const displayStyle = menuContainer.style.display; menuContainer.style.display = displayStyle === 'none' ? 'block' : 'none' } Inject();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址