// ==UserScript==
// @name ESP para kirka.io
// @namespace http://your.site.namespace
// @version 0.2
// @description Mostra inimigos com linhas conectadas visíveis a todo instante
// @author Your Name
// @match https://kirka.io/*
// @grant none
// @downloadURL https://update.greasyfork.icu/scripts/498410/ESP%20para%20kirkaio.user.js
// @updateURL https://update.greasyfork.icu/scripts/498410/ESP%20para%20kirkaio.meta.js
// ==/UserScript==
(function() {
'use strict';
let espAtivado = false;
const corLinha = '#ff0000'; // Cor da linha vermelho forte (pode ser alterada)
let tabelaMostrada = false;
let ultimoQuadro = 0;
// Função para mostrar a tabela de teclas de ativação/desativação
function mostrarTabelaTeclas() {
if (tabelaMostrada) return;
const divTabela = document.createElement('div');
divTabela.className = 'esp-teclas';
divTabela.style.position = 'fixed';
divTabela.style.top = '10px';
divTabela.style.right = '10px';
divTabela.style.background = 'rgba(0, 0, 0, 0.7)';
divTabela.style.color = '#fff';
divTabela.style.padding = '10px';
divTabela.style.borderRadius = '5px';
divTabela.innerHTML = `
Teclas de Ativação/Desativação do Script
Pressione "M" | Ativar/Desativar ESP |
`;
document.body.appendChild(divTabela);
tabelaMostrada = true;
}
// Função para desenhar uma linha entre dois pontos no canvas
function desenharLinha(ctx, x1, y1, x2, y2) {
ctx.beginPath();
ctx.moveTo(x1, y1);
ctx.lineTo(x2, y2);
ctx.strokeStyle = corLinha;
ctx.lineWidth = 2;
ctx.stroke();
}
// Função para mostrar inimigos e desenhar as linhas
function mostrarInimigos() {
const canvas = document.getElementById('gameCanvas');
const ctx = canvas.getContext('2d');
// Simulação de API para obter posição dos jogadores e inimigos (fictício)
const jogadores = [
{ id: 'meuJogador', x: 100, y: 100 },
{ id: 'jogador1', x: 200, y: 200 },
// Adicione mais jogadores conforme necessário
];
const inimigos = [
{ id: 'inimigo1', x: 150, y: 150 },
{ id: 'inimigo2', x: 250, y: 250 },
// Adicione mais inimigos conforme necessário
];
jogadores.forEach(jogador => {
const jogadorX = jogador.x;
const jogadorY = jogador.y;
inimigos.forEach(inimigo => {
const inimigoX = inimigo.x;
const inimigoY = inimigo.y;
desenharLinha(ctx, jogadorX, jogadorY, inimigoX, inimigoY);
});
});
}
// Função para limpar o canvas
function limparCanvas(ctx) {
ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);
}
// Função para alternar o estado do ESP
function alternarESP() {
espAtivado = !espAtivado;
const canvas = document.getElementById('gameCanvas');
const ctx = canvas.getContext('2d');
if (espAtivado) {
mostrarTabelaTeclas();
requestAnimationFrame(atualizarESP.bind(null, ctx));
} else {
limparCanvas(ctx);
tabelaMostrada = false;
removerTabelaTeclas();
}
}
// Função para remover a tabela de teclas
function removerTabelaTeclas() {
const divTabela = document.querySelector('div.esp-teclas');
if (divTabela) {
divTabela.remove();
tabelaMostrada = false;
}
}
// Função para atualizar o ESP continuamente
function atualizarESP(ctx, timestamp) {
const deltaTime = timestamp - ultimoQuadro;
if (deltaTime >= 1000 / 30) { // Atualiza a cada 30 quadros por segundo (opcional)
limparCanvas(ctx);
mostrarInimigos();
ultimoQuadro = timestamp;
}
if (espAtivado) {
requestAnimationFrame(atualizarESP.bind(null, ctx));
}
}
// Função para lidar com a tecla pressionada
function teclaPressionada(event) {
if (event.key === 'm' || event.key === 'M') {
alternarESP();
}
}
document.addEventListener('keydown', teclaPressionada);
})();