// ==UserScript==
// @name Cryzen.io
// @description Todos em um: Models, Anti-recoil, ESP, Rewards, Performance
// @version 1.0.2
// @match https://cryzen.io/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=cryzen.io
// @author _PeDeCoca
// @grant none
// @run-at document-start
// @license MIT
// @namespace PeDeCoca
// ==/UserScript==
// Utility functions
const { log, debug, warn, error } = console;
// Model visibility enhancement
const srcset = Object.getOwnPropertyDescriptor(Image.prototype, 'src').set;
function getSqareDataURL(width, height, color) {
const canvas = document.createElement('canvas');
canvas.width = width;
canvas.height = height;
const context = canvas.getContext('2d');
context.fillStyle = color;
context.fillRect(0, 0, width, height);
return canvas.toDataURL();
}
Object.defineProperty(Image.prototype, 'src', {
set(value) {
this._src = value;
if (typeof value != 'string') return srcset.call(this, value);
if (value.includes('colorMap')) {
if (value.toLowerCase().includes('red')) {
value = getSqareDataURL(1000, 1000, '#FF7373');
} else if (value.toLowerCase().includes('blue')) {
value = getSqareDataURL(1000, 1000, '#00FFFF');
} else {
value = getSqareDataURL(1000, 1000, '#73FF73');
}
}
if (value.includes('map-')) {
value = getSqareDataURL(4096, 2048, '#AAAAAA');
}
srcset.call(this, value);
},
get() { return this._src; }
});
// No spread and anti-recoil
const _random = Math.random;
Object.defineProperty(Math, 'random', {
set(value) { _random = value; },
get() {
try {
throw new Error();
} catch (error) {
if (error.stack.includes('shoot')) return _=>.5;
}
return _random;
}
});
// Player ESP with wireframe
Object.defineProperty(Object.prototype, 'material', {
get() { return this._material; },
set(v) {
if (this.type === 'SkinnedMesh' && this?.skeleton) {
Object.defineProperties(v, {
'depthTest': {
get() { return false; },
set(v) {},
},
'transparent': {
get() { return true; },
set(v) {},
}
});
v.wireframe = true;
v.opacity = 1;
}
this._material = v;
}
});
// Add tracking system
function setupModelTracking() {
const playerTracker = {
enabled: false,
players: new Set(),
nearestPlayer: null,
highlightColor: new Color(1, 0, 0) // vermelho
};
// Observer para detectar jogadores
const observer = new MutationObserver((mutations) => {
mutations.forEach(mutation => {
mutation.addedNodes.forEach(node => {
if (node.classList?.contains('player-model')) {
playerTracker.players.add(node);
}
});
});
});
// Adicionar toggle no menu
function addTrackingToggle() {
const container = document.querySelector('.toggle-container');
const label = document.createElement('label');
label.innerHTML = `
<input type="checkbox" id="toggle-tracking"> Target Track
`;
container.appendChild(label);
document.getElementById('toggle-tracking').onchange = (e) => {
playerTracker.enabled = e.target.checked;
if (!e.target.checked) {
// Limpar highlights quando desativado
playerTracker.players.forEach(player => {
if (player?.material) {
player.material.emissive = new Color(0, 0, 0);
}
});
}
};
}
// Update loop melhorado
function trackerLoop() {
if (!playerTracker.enabled) return;
const center = {
x: window.innerWidth / 2,
y: window.innerHeight / 2
};
let closest = null;
let minDistance = Infinity;
// Limpar highlight anterior
if (playerTracker.nearestPlayer?.material) {
playerTracker.nearestPlayer.material.emissive = new Color(0, 0, 0);
}
// Encontrar jogador mais próximo
document.querySelectorAll('.player-model').forEach(player => {
if (!player.isConnected) return;
const rect = player.getBoundingClientRect();
if (!rect.width || !rect.height) return;
const distance = Math.hypot(
center.x - (rect.left + rect.width / 2),
center.y - (rect.top + rect.height / 2)
);
if (distance < minDistance) {
minDistance = distance;
closest = player;
}
});
// Destacar novo alvo
if (closest?.material) {
closest.material.emissive = playerTracker.highlightColor;
playerTracker.nearestPlayer = closest;
if (config.debug) {
console.log('[Target Track] Found:', {
distance: minDistance,
element: closest
});
}
}
requestAnimationFrame(trackerLoop);
}
// Inicializar
observer.observe(document.body, {
childList: true,
subtree: true
});
addTrackingToggle();
trackerLoop();
return playerTracker;
}
// Free rewards system
function skipRewardedBreak() {
return new Promise(resolve => resolve(true));
}
Object.defineProperties(Object.prototype, {
'rewardedBreak': {
get() { return skipRewardedBreak.bind(this); },
set() {},
enumerable: false,
},
'gameanalytics': {
get() {
return {
GameAnalytics: {
addAdEvent: () => {},
}
// ...existing gameanalytics mock...
};
},
set(v) {},
enumerable: false,
}
});
// Enhanced menu system
(function() {
// Add config object with blocked domains
const config = {
active: true,
autoReward: true,
debug: true,
noSpread: true, // Ativo por padrão
esp: true, // Ativo por padrão
blockedDomains: new Set([
'poki.com',
'poki-gdn.com',
'google-analytics.com',
'doubleclick.net',
'adservice.google.com',
'analytics.google.com',
'pagead2.googlesyndication.com',
'googleads.g.doubleclick.net',
'partner.googleadservices.com',
'tpc.googlesyndication.com',
'google.com/pagead',
'google.com/adsense',
'advertising.com',
'adnxs.com',
'adsense.google.com'
])
};
// Add ad blocking functions
const originalFetch = window.fetch;
window.fetch = async function(...args) {
try {
const url = new URL(args[0]);
if (config.blockedDomains.has(url.hostname)) {
if (config.debug) console.log('[AdBlock] Blocked fetch:', url.hostname);
return new Response('', { status: 200 });
}
} catch {}
return originalFetch.apply(this, arguments);
};
const originalXHR = window.XMLHttpRequest;
window.XMLHttpRequest = function() {
const xhr = new originalXHR();
const originalOpen = xhr.open;
xhr.open = function(method, url) {
try {
const urlObj = new URL(url);
if (config.blockedDomains.has(urlObj.hostname)) {
if (config.debug) console.log('[AdBlock] Blocked XHR:', urlObj.hostname);
return;
}
} catch {}
return originalOpen.apply(this, arguments);
};
return xhr;
};
// Block ads on document level
function removeAdsElements() {
const adSelectors = [
'ins.adsbygoogle',
'div[id*="google_ads"]',
'div[id*="advertisement"]',
'div[class*="ad-"]',
'div[class*="ads-"]',
'iframe[src*="googlead"]',
'iframe[src*="doubleclick"]',
'div[aria-label*="Advertisement"]'
];
const observer = new MutationObserver((mutations) => {
for (const selector of adSelectors) {
document.querySelectorAll(selector).forEach(ad => {
ad.remove();
if (config.debug) console.log('[AdBlock] Removed ad element:', selector);
});
}
});
observer.observe(document.body, {
childList: true,
subtree: true
});
}
// Override window.open to block popup ads
const originalWindowOpen = window.open;
window.open = function(url, ...args) {
try {
const urlObj = new URL(url);
if (config.blockedDomains.has(urlObj.hostname)) {
if (config.debug) console.log('[AdBlock] Blocked popup:', url);
return null;
}
} catch {}
return originalWindowOpen.apply(this, arguments);
};
const styles = `
#hack-menu {
position: fixed;
top: 50px;
left: 10px;
background: rgba(0,0,0,0.8);
color: #00ff00;
padding: 15px;
border-radius: 10px;
z-index: 9999;
width: 200px;
font-family: Arial, sans-serif;
border: 2px solid #00ff00;
cursor: move;
animation: rainbow 2s infinite;
user-select: none;
}
#hack-menu h3 {
text-align: center;
margin-bottom: 10px;
color: #00ff00;
display: flex;
justify-content: center;
align-items: center;
position: relative;
}
.minimize-btn {
position: absolute;
top: 5px;
right: 5px;
background: none;
border: none;
color: #00ff00;
cursor: pointer;
font-size: 16px;
padding: 5px;
}
.toggle-container {
display: flex;
flex-direction: column;
gap: 10px;
margin: 15px 0;
}
.toggle-container label {
display: flex;
align-items: center;
gap: 8px;
color: #00ff00;
cursor: pointer;
}
.button-container {
display: flex;
flex-direction: column;
gap: 5px;
}
.control-btn {
background-color: #333;
border: 1px solid #00ff00;
color: #00ff00;
padding: 8px;
cursor: pointer;
border-radius: 5px;
width: 100%;
}
.control-btn:hover {
background-color: #444;
}
@keyframes rainbow {
0% { border-color: red; }
33% { border-color: #00ff00; }
66% { border-color: blue; }
100% { border-color: red; }
}
.floating-icon {
position: fixed;
top: 50px;
left: 10px;
width: 40px;
height: 40px;
background: rgba(0,0,0,0);
border-radius: 50%;
display: none;
justify-content: center;
align-items: center;
cursor: pointer;
z-index: 9999;
border: 2px solid #00ff00;
animation: rainbow 2s infinite;
}
.discord-icon {
width: 50px;
height: 50px;
margin-left: 10px;
transition: transform 0.2s;
}
.discord-icon:hover {
transform: scale(1.2);
}
`;
function createMenu() {
const menu = document.createElement('div');
menu.id = 'hack-menu';
menu.innerHTML = `
<button class="minimize-btn">−</button>
<h3>
<span>_PeDeCoca</span>
<a href="https://discord.gg/RWjQcR6f5T" target="_blank">
<img src="https://img.icons8.com/?size=100&id=61604&format=png&color=000000" alt="Discord" class="discord-icon">
</a>
</h3>
<div class="toggle-container">
<label>
<input type="checkbox" id="toggle-esp" checked> ESP Vision
</label>
<label>
<input type="checkbox" id="toggle-nospread" checked> No Spread
</label>
<label>
<input type="checkbox" id="toggle-rewards" checked> Auto Rewards
</label>
</div>
<div class="button-container">
<button class="control-btn" id="quality-high">High Graphics</button>
<button class="control-btn" id="quality-medium">Medium Graphics</button>
<button class="control-btn" id="quality-low">Low Graphics</button>
</div>
<button id="reset-all" class="control-btn" style="margin-top: 15px">Reset All</button>
`;
const floatingIcon = document.createElement('div');
floatingIcon.className = 'floating-icon';
floatingIcon.innerHTML = '👹';
document.body.appendChild(menu);
document.body.appendChild(floatingIcon);
setupControls();
makeMenuDraggable(menu, floatingIcon);
}
// Add graphics quality functions
function setGraphicsQuality(quality) {
switch(quality) {
case 'High':
resetGraphics();
break;
case 'Medium':
applyMediumGraphics();
break;
case 'Low':
applyLowGraphics();
break;
}
}
function resetGraphics() {
document.querySelectorAll('.map-element').forEach(element => {
element.style.removeProperty('backgroundColor');
element.style.removeProperty('opacity');
element.style.removeProperty('border');
});
// Reset skybox and other elements
const skybox = document.querySelector('.skybox');
if (skybox) skybox.style.display = 'block';
}
function applyMediumGraphics() {
document.querySelectorAll('.map-element').forEach(element => {
element.style.opacity = '0.8';
element.style.backgroundColor = '#444';
});
}
function applyLowGraphics() {
// Remove skybox
const skybox = document.querySelector('.skybox');
if (skybox) skybox.style.display = 'none';
// Simplify map elements
document.querySelectorAll('.map-element').forEach(element => {
element.style.backgroundColor = 'gray';
element.style.opacity = '0.5';
element.style.border = 'none';
});
}
// Remover antigas tentativas de controle de cor e opacidade no setupControls
function setupControls() {
document.getElementById('toggle-esp').onchange = (e) => {
const enabled = e.target.checked;
// Toggle ESP visibility with wireframe
document.querySelectorAll('.player-model').forEach(player => {
if (player?.material) {
player.material.depthTest = !enabled;
player.material.transparent = enabled;
player.material.wireframe = enabled;
player.material.opacity = 1;
}
});
};
document.getElementById('toggle-nospread').onchange = (e) => {
// Toggle no spread functionality
config.noSpread = e.target.checked;
};
document.getElementById('toggle-rewards').onchange = (e) => {
config.autoReward = e.target.checked;
};
// Graphics quality buttons
document.getElementById('quality-high').onclick = () => setGraphicsQuality('High');
document.getElementById('quality-medium').onclick = () => setGraphicsQuality('Medium');
document.getElementById('quality-low').onclick = () => setGraphicsQuality('Low');
// Reset button with proper graphics reset
document.getElementById('reset-all').onclick = () => {
// Reset all toggles
document.querySelectorAll('input[type="checkbox"]').forEach(cb => cb.checked = false);
// Reset configurations
config.autoReward = false;
config.noSpread = false;
// Reset graphics to high quality
setGraphicsQuality('High');
// Additional resets if needed
resetGraphics();
};
// Minimize button
const menu = document.getElementById('hack-menu');
const floatingIcon = document.querySelector('.floating-icon');
const minimizeBtn = menu.querySelector('.minimize-btn');
minimizeBtn.onclick = () => {
menu.style.display = 'none';
floatingIcon.style.display = 'flex';
};
floatingIcon.onclick = () => {
menu.style.display = 'block';
floatingIcon.style.display = 'none';
};
}
function makeMenuDraggable(menu, floatingIcon) {
[menu, floatingIcon].forEach(element => {
let isDragging = false;
let currentX;
let currentY;
let initialX;
let initialY;
element.addEventListener('mousedown', (e) => {
if (e.target.tagName === 'BUTTON' || e.target.tagName === 'INPUT') return;
isDragging = true;
initialX = e.clientX - element.offsetLeft;
initialY = e.clientY - element.offsetTop;
});
document.addEventListener('mousemove', (e) => {
if (!isDragging) return;
e.preventDefault();
currentX = e.clientX - initialX;
currentY = e.clientY - initialY;
element.style.left = `${currentX}px`;
element.style.top = `${currentY}px`;
});
document.addEventListener('mouseup', () => {
isDragging = false;
});
});
}
// Initialize everything
function initialize() {
const styleSheet = document.createElement('style');
styleSheet.textContent = styles + `
.adsbygoogle { display: none !important; }
[class*="advertisement"] { display: none !important; }
[id*="google_ads"] { display: none !important; }
`;
document.head.appendChild(styleSheet);
createMenu();
removeAdsElements();
// Inicializar tudo em ordem correta
window.playerTracker = setupModelTracking();
// Ativar todas as funcionalidades por padrão
setTimeout(() => {
// Ativar ESP
document.querySelectorAll('.player-model').forEach(player => {
if (player?.material) {
player.material.depthTest = false;
player.material.transparent = true;
}
});
// Ativar No Spread
config.noSpread = true;
// Ativar Auto Rewards
config.autoReward = true;
// Aplicar qualidade gráfica baixa por padrão
setGraphicsQuality('Low');
}, 1000); // Pequeno delay para garantir que tudo foi carregado
// Adicionar sistema de tracking
setupModelTracking();
// Inicializar tracking system
const playerTracker = setupModelTracking();
window.playerTracker = playerTracker; // Para debug
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initialize);
} else {
initialize();
}
})();
// ...rest of existing code...