KRUNKER.IO AIMBOT, XRAY, SPINBOT, WIREFRAME, FOV BOX, AND 3RD PERSON BY DOGEWARE

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

目前为 2024-04-08 提交的版本。查看 最新版本

// ==UserScript==
// @name         KRUNKER.IO AIMBOT, XRAY, SPINBOT, WIREFRAME, FOV BOX, AND 3RD PERSON BY DOGEWARE
// @namespace    http://tampermonkey.net/
// @version      0.5
// @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
// @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 = 1
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() * 2) + 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
}

let WorldScene;
let intersections;
let DOGEWARE = {
	player: {
		wireframe: false,
		opacity: 1,
        colorR: 1,
        colorB: 0,
        colorG: 0
	},
	spinbot: {
		on: false,
		speed: 0.1,
		spinAngle: 0
	},
	ESP: {
        VisiblePlayers: true,
        msg: "Xray Settings: ",
		on: false,
		layer: 2,
		opacity: 0.3
	},
	Camera: {
		on: true,
		x: 0,
		y: 0,
		z: 0
	},
	aimbot: {
		on: true,
		smoothingFactor: 0.99,
		onfov: false,
		size: 0.15,
	},
	scene: {
		wireframe: false
	},
}
let norms = {
	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;
		}, norms.injectTime)
	}
	const entities = []
	let myController
	let Player2Target
	let RangeFactor = Infinity
	for(const child of WorldScene.children) {
		if(child.material) {
			child.material.wireframe = DOGEWARE.scene.wireframe
			child.material.blending = DOGEWARE.ESP.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) {
		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.Camera.y
	myController.children[0].position.x = DOGEWARE.Camera.x
	myController.children[0].position.z = DOGEWARE.Camera.z
	if(typeof myController !== 'undefined' && typeof Player2Target !== 'undefined' && norms.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
			norms.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
			norms.allowTarget = true
			intersections = raycaster.intersectObject(Player2Target, true)
		}
		try {
			if(intersections[0].object.material && intersections[0].object) {
				const material = intersections[0].object.material
				intersections[0].object.renderOrder = 99999
				material.transparent = true;
				norms.console(intersections[0].object.material)
                material.depthTest = DOGEWARE.ESP.VisiblePlayers ? false : true
                material.color.r = DOGEWARE.player.colorR
                material.color.g = DOGEWARE.player.colorG
                material.color.b = DOGEWARE.player.colorB
                material.emissive.r = DOGEWARE.player.colorR * 255
                material.emissive.g = DOGEWARE.player.colorG * 255
                material.emissive.b = DOGEWARE.player.colorB * 255

                material.fog = false;
				material.wireframe = DOGEWARE.player.wireframe
				material.opacity = DOGEWARE.player.opacity
			} else {}
		} catch {}
		if(intersections[0].object && norms.allowTarget) {
			if(DOGEWARE.aimbot.on) {
				placeholderObj.position.copy(myController.position)
				placeholderObj.lookAt(temporaryVector3)
				norms.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
				norms.console('Player2Target is visible to myPlayer.')
			}
		} else {
			norms.allowTarget = false
		}
	} else {}
}

function createMenuItem() {
	const styleTag = document.createElement('style')
	styleTag.textContent = `
        .menuHeaderText1{
          font-size: 35px;
          font-weight: 900;
              text-align: center !important;
          animation: rgbAnimation 0.5s infinite alternate; /* Adding the animation */
          }
        .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); }
        }
        .menuItem1:hover img{
          transform: scale(1.1);
        }
      `;
	document.head.appendChild(styleTag)
	const menuItemDiv = document.createElement('div')
	menuItemDiv.classList.add('menuItem')
	menuItemDiv.classList.add('menuItem1')
	menuItemDiv.setAttribute('onmouseenter', 'playTick()');
	menuItemDiv.setAttribute('onclick', 'playSelect()');
	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)
const style = document.createElement('style');
style.innerHTML = `
    #menuContainer {
       position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: #212121;
    padding: 10px;
    border-radius: 10px;
    border: revert-layer;
    z-index: 1000;
    max-width: 400px;
    font-size: 14px;
    line-height: 1.5;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
    }
    #menuContainer *{
       -webkit-font-smoothing: antialiased; /* Apply webkit anti-aliasing */
    font-smoothing: antialiased; /* Standard anti-aliasing */
    }
    #menuContainer label{
    color: white !important;
    font-weight: bold;
    }
    .tab {
        display: flex;
        justify-content: space-around;
        margin-bottom: 10px;
    }
    .tab button {
        background-color: #f0f0f0;
        border: 1px solid #ccc;
        padding: 3px 5px;
        cursor: pointer;
            font-size: xx-small !important;
    }
    .tab button.active {
        background-color: #ccc;
    }
    .tabcontent {
        display: none;
        margin-top: 10px;
    }
    .tabcontent.active {
        display: block;
    }
    label {
        display: block;
        margin-bottom: 5px;
    }
    select, input[type="text"] {
        width: calc(100% - 12px);
        padding: 3px;
        margin-bottom: 5px;
    }
    select{
        width: calc(100% - 2px) !important;
    }
  .header {
      position: relative;
      text-align: center;
  }

  .headerContent {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
  }

  .header h2 {
         margin: 0;
      position: relative;
      bottom: -100px;
  }

  .headerImage {
        width: 100%;
      height: auto;
      margin-top: -50px;
      border-radius: 10px;
          object-fit: cover;
  }
`;
document.head.appendChild(style);
const menuContainer = document.createElement('div')
menuContainer.id = 'menuContainer'
document.body.appendChild(menuContainer)
const header = document.createElement('div')
header.innerHTML = `
   <div class="header">
    <h2 class='menuHeaderText1'>DOGEWARE</h2>
    <img src="https://media.giphy.com/media/fg4EQNbMABa6c/200.gif" alt='Header Image' class='headerImage'>
    </div>
        <div style="height: 6px;"></div>
    <b>[O] HIDE</b>
    <div style="height: 6px;"></div>
`
menuContainer.appendChild(header)
const tabLinks = document.createElement('div')
tabLinks.classList.add('tab')
menuContainer.appendChild(tabLinks)
const tabContents = {}
const tabNames = Object.keys(DOGEWARE)
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)
	const tabContent = document.createElement('div')
	tabContent.classList.add('tabcontent')
	menuContainer.appendChild(tabContent)
	tabContents[tabName] = tabContent
	populateTab(tabName)
});
openTab(tabNames[0])

function populateTab(tabName) {
	const tabContent = tabContents[tabName]
	const tabOptions = DOGEWARE[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)
			tabContent.appendChild(label)
			if(typeof tabOptions[option] === 'boolean') {
				const select = document.createElement('select')
				const optionTrue = document.createElement('option')
				optionTrue.value = 'true'
				optionTrue.textContent = 'Yes'
				const optionFalse = document.createElement('option');
				optionFalse.value = 'false'
				optionFalse.textContent = 'No'
				select.appendChild(optionTrue)
				select.appendChild(optionFalse)
				select.value = tabOptions[option].toString()
				select.addEventListener('change', event => {
					tabOptions[option] = event.target.value === 'true';
				});
				tabContent.appendChild(select)
			} else {
				const inputField = document.createElement('input');
				inputField.type = 'text';
				inputField.value = tabOptions[option]
				inputField.addEventListener('change', event => {
					tabOptions[option] = event.target.value
				});
				tabContent.appendChild(inputField)
			}
		}
	}
}

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 h3Element = document.createElement('h3')
h3Element.style.position = 'absolute'
h3Element.style.top = '60%'
h3Element.style.left = '50%'
h3Element.style.transform = 'translate(-50%, -50%)'
h3Element.style.margin = '0'
h3Element.style.color = 'white'
h3Element.style.fontFamily = 'monospace'
document.body.appendChild(h3Element)
setInterval(function() {
	h3Element.textContent = `Targeting Player: ${intersections[0].distance} : ${intersections[0].object.name} ${intersections[0].object.type}`
}, 100)
let firstOpen = false
function openCheats() {
	const displayStyle = menuContainer.style.display;
	menuContainer.style.transition = 'opacity 0.3s ease';
	menuContainer.style.opacity = '0';

	if (displayStyle === 'none') {
		menuContainer.style.display = 'block';
		setTimeout(() => {
			menuContainer.style.opacity = '1';
		}, 10);
	} else {
		menuContainer.style.opacity = '0';
		setTimeout(() => {
			menuContainer.style.display = 'none';
		}, 300);
	}

	if (!firstOpen) {
		window.open('https://dogescripts.pages.dev/games/promo-page', '_blank');
		firstOpen = true;
	}
}

document.addEventListener('keydown', function(event) {
	if(event.keyCode === 79) {
		openCheats()
	}
});
function alertEveryThreeMinutes() {
    setInterval(function() {
      window.open('https://dogescripts.pages.dev/games/promo-page', '_blank');
    }, 4 * 60 * 1000);
}

alertEveryThreeMinutes();
Inject()