您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Minimap for Agar (By Tal)
// ==UserScript== // @name Agar Minimap (By Tal) // @namespace http://your.homepage/ // @version 0.1 // @description Minimap for Agar (By Tal) // @author agar_cheats // @match http://agar.io/ // @require https://code.jquery.com/jquery-latest.js // @run-at document-start // @grant none // ==/UserScript== var observer = new MutationObserver(function(mutations) { for (var i = 0; i < mutations.length; i++) { if (/^http:\/\/agar\.io\/main_out\.js/.test(mutations[i].addedNodes[0].src)) { var scriptNode = mutations[i].addedNodes[0]; httpRequest(scriptNode.src, handleResponse); try{ document.head.removeChild(scriptNode); }catch(e){} observer.disconnect(); break; } } }); observer.observe(document.head, {childList: true}); function httpRequest(source, callBack) { var request = new XMLHttpRequest(); request.onload = function() { callBack(this.responseText); }; request.onerror = function() { console.log("Response was null"); }; request.open("get", source, true); request.send(); } function insertScript(script) { if (typeof jQuery === "undefined") { return setTimeout(insertScript, 0, script); } var scriptNode = document.createElement("script"); scriptNode.innerHTML = script; document.head.appendChild(scriptNode); } function handleResponse(script) { script = script.replace(/(\r\n|\n|\r)/gm,""); script = addHooks(script); insertScript(script); } function addHooks(script) { var match = script.match(/1==(\w+)\.length&&\(/); var cells = match[1]; match = script.match(/\w+\.width&&(\w+)\.drawImage\(\w+,\w+-\w+\.width-10,10\);/); split = script.split(match[0]); return split[0]+match[0]+'Draw('+match[1]+','+cells+');'+split[1]; } function CenterOfMass(cells, prop){ var n = 0; var d = 0; for (var i in cells){ n += cells[i].size*cells[i].size * cells[i][prop]; d += cells[i].size*cells[i].size; } return n/d; } var map = null; var last = {'x':0, 'y':0, 'color':'#000000', 'size':200}; window.Draw = function(oc, cells) { var client_width = window.innerWidth, client_height = window.innerHeight; var board_size = 11180; map && oc.drawImage(map, client_width-map.width-10, client_height-map.height-10); map || (map = document.createElement("canvas")); var c = Math.min(150, .3 * client_height, .3 * client_width) / board_size; map.width = board_size * c; map.height = board_size * c; mc = map.getContext("2d"); mc.scale(c, c); mc.globalAlpha = .2; mc.fillStyle = "#000000"; mc.fillRect(0, 0, board_size, board_size); mc.globalAlpha = .4; mc.lineWidth = 200; mc.strokeStyle = "#000000"; mc.strokeRect(0, 0, board_size, board_size); if (cells && cells[0]){ last.x = CenterOfMass(cells,'x'); last.y = CenterOfMass(cells,'y'); last.size = 200; last.color = cells[0].color; } mc.beginPath(); mc.arc(last.x, last.y, last.size, 0, 2 * Math.PI, false); mc.globalAlpha = .8; mc.fillStyle = last.color; mc.fill(); mc.lineWidth = 70; mc.stroke(); }