您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Rewritten in 2019. Previous name is Agar.io auto respawn (evergreen)
- // ==UserScript==
- // @name Agar.io Reborn 2019
- // @namespace http://redd.it/3ut09g
- // @description Rewritten in 2019. Previous name is Agar.io auto respawn (evergreen)
- // @version 110
- // @author condoriano
- // @icon http://i.imgur.com/YkDG9CI.png
- // @include http://agar.io/*
- // @include https://agar.io/*
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- var canvas = null;
- var ejectorLoop = null;
- var keysHold = {};
- var topPlayers = [];
- var copiedName = '';
- $(document).ready(function() {
- canvas = document.getElementById('canvas');
- hookKeys();
- canvasModding();
- });
- function hookKeys() {
- $(document).on('keyup', function(e) {
- var key = e.which || e.keyCode;
- keysHold[key] = false;
- if(key == 69) { // key E
- clearInterval(ejectorLoop);
- ejectorLoop = null;
- }
- else if(key >= 37 && key <= 40 || key >= 73 && key <= 76) handleMovementKeys();
- });
- $(document).on('keydown', function(e) {
- var key = e.which || e.keyCode;
- var spKeys = e.ctrlKey || e.altKey || e.shiftKey;
- console.log('DEBUG: keydown ' + key);
- if(!document.getElementById('overlays') && !spKeys) {
- if(!keysHold[key]) {
- if(key == 69) { // key E
- if(!ejectorLoop) {
- ejectorLoop = setInterval(function() {
- window.onkeydown({ keyCode: 87 });
- window.onkeyup({ keyCode: 87 });
- }, 10);
- }
- }
- else if(key == 82) { // key R
- setIntervalX(function() {
- window.onkeydown({ keyCode: 87 }); // key W
- window.onkeyup({ keyCode: 87 });
- }, 120, 7);
- }
- else if(key == 84) { // key T
- setIntervalX(function() {
- window.onkeydown({ keyCode: 32 }); // key SPACE
- window.onkeyup({ keyCode: 32 });
- }, 60, 4);
- }
- else if(key == 83) { // key S
- var mEv = new MouseEvent('mousemove', { 'clientX': window.innerWidth / 2, 'clientY': window.innerHeight / 2 });
- canvas.dispatchEvent(mEv);
- }
- }
- keysHold[key] = true;
- if(key >= 37 && key <= 40 || key >= 73 && key <= 76) handleMovementKeys();
- }
- if(key >= 48 && key <= 57 && !spKeys && document.activeElement.tagName.toUpperCase() != 'INPUT') { // keys 0-9
- var playerPos = key == 48 ? 9 : key - 49;
- if(topPlayers[playerPos] !== undefined) {
- var newName = topPlayers[playerPos];
- //$('#nick').val(newName).change();
- window.prompt("Press CTRL+C to copy", newName);
- }
- }
- });
- }
- function canvasModding() {
- var proxiedFillText = CanvasRenderingContext2D.prototype.fillText;
- CanvasRenderingContext2D.prototype.fillText = function() {
- if(arguments[0] == 'Leaderboard') {
- arguments[0] = 'tiny.cc/iAgar';
- topPlayers = [];
- }
- else if(parseInt(arguments[0]) >= 1 && parseInt(arguments[0]) <= 10) { // 1. xxx to 10. xxx
- var rank = parseInt(arguments[0]);
- if(rank <= 9 && arguments[0][1] == '.' || rank == 10 && arguments[0][2] == '.') {
- var tempName = arguments[0].substr(rank == 10 ? 4 : 3);
- topPlayers[rank - 1] = tempName;
- }
- }
- return proxiedFillText.apply(this, arguments);
- };
- var proxiedStrokeText = CanvasRenderingContext2D.prototype.strokeText;
- CanvasRenderingContext2D.prototype.strokeText = function() {
- return proxiedStrokeText.apply(this, arguments);
- };
- }
- function handleMovementKeys() {
- var left = keysHold[37] || keysHold[74], up = keysHold[38] || keysHold[73], right = keysHold[39] || keysHold[76], down = keysHold[40] || keysHold[75];
- var point = [ window.innerWidth / 2, window.innerHeight / 2 ];
- if(left) point[0] -= 1000;
- if(up) point[1] -= 1000;
- if(right) point[0] += 1000;
- if(down) point[1] += 1000;
- canvas.dispatchEvent(new MouseEvent('mousemove', { 'clientX': point[0], 'clientY': point[1] }));
- }
- function setIntervalX(callback, delay, repetitions) {
- var x = 0;
- var intervalID = window.setInterval(function () {
- callback();
- if(++x === repetitions) window.clearInterval(intervalID);
- }, delay);
- }
- window.onbeforeunload = function() { return 'Quit game?'; };
- })();