您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Subir imagen como skin y aplicar borde blanco o negro según el color elegido (1 o 2)
// ==UserScript== // @name Agar.io Skin con Borde Personalizado // @namespace http://tampermonkey.net/ // @version 1.0 // @description Subir imagen como skin y aplicar borde blanco o negro según el color elegido (1 o 2) // @author ChatGPT Adaptado para José Andre // @match *://agar.io/* // @grant none // ==/UserScript== (function () { 'use strict'; // Esperar a que cargue el DOM const checkDOM = setInterval(() => { const parent = document.querySelector('.form-group.clearfix'); const colorSelector = document.querySelector('#color'); const saveButton = document.querySelector('button[data-itr="save"]'); if (parent && colorSelector && saveButton) { clearInterval(checkDOM); // Crear botón para subir imagen const input = document.createElement('input'); input.type = 'file'; input.accept = 'image/*'; input.style.marginLeft = '10px'; input.id = 'customSkinUpload'; // Insertar botón al lado del de 'Save' saveButton.parentNode.insertBefore(input, saveButton.nextSibling); // Crear lienzo temporal para aplicar borde const canvas = document.createElement('canvas'); const ctx = canvas.getContext('2d'); canvas.width = 512; canvas.height = 512; input.addEventListener('change', (event) => { const file = event.target.files[0]; if (!file) return; const reader = new FileReader(); reader.onload = (e) => { const img = new Image(); img.onload = () => { ctx.clearRect(0, 0, canvas.width, canvas.height); // Dibujar imagen circular ctx.save(); ctx.beginPath(); ctx.arc(256, 256, 230, 0, Math.PI * 2); ctx.closePath(); ctx.clip(); ctx.drawImage(img, 0, 0, 512, 512); ctx.restore(); // Detectar color elegido: 1 -> blanco, 2 -> negro const colorValue = parseInt(colorSelector.value); if (colorValue === 1) { ctx.strokeStyle = 'white'; } else if (colorValue === 2) { ctx.strokeStyle = 'black'; } else { ctx.strokeStyle = 'transparent'; } ctx.lineWidth = 16; ctx.beginPath(); ctx.arc(256, 256, 230, 0, Math.PI * 2); ctx.stroke(); // Convertir a dataURL const finalImage = canvas.toDataURL('image/png'); // Asignar la imagen a la skin localStorage.setItem('customSkinDataURL', finalImage); // Mostrar en el círculo visual const skinPreview = document.querySelector('.circle.bordered'); if (skinPreview) skinPreview.src = finalImage; }; img.src = e.target.result; }; reader.readAsDataURL(file); }); } }, 500); })();