Agario auto respawn

Auto respawn + close tab confirmation + hold E to W + refresh server button + default settings (show mass, dark theme, skip stats and more) + hide ads

目前為 2015-12-05 提交的版本,檢視 最新版本

// ==UserScript==
// @name        Agario auto respawn
// @namespace   http://redd.it/3ut09g
// @description Auto respawn + close tab confirmation + hold E to W + refresh server button + default settings (show mass, dark theme, skip stats and more) + hide ads
// @author      condoriano
// @include     http://agar.io/*
// @version     7
// @grant       none
// ==/UserScript==

/*---------------------------------------------------------------*/
/*---------------    Configurations start here    ---------------*/
/*---------------------------------------------------------------*/

var pref_name           = "ௌௌௌௌௌௌௌௌௌௌௌௌௌௌௌ";
var pref_noskin         = false;
var pref_noname         = false;
var pref_nocolor        = false;
var pref_showmass       = true;
var pref_darktheme      = true;
var pref_skipstats      = true;
var pref_autospawn      = true;
var pref_gamemode       = ""; // :teams, :experimental, :party
var pref_region         = "SG-Singapore"; // US-Atlanta, BR-Brazil, EU-London, RU-Russia, TK-Turkey, JP-Tokyo, CN-China, SG-Singapore

var pref_askbeforeclose = true;
var pref_holdEtoW       = true;
var pref_hideads        = true;

/*---------------------------------------------------------------*/
/*----------------    Configurations end here    ----------------*/
/*---------------------------------------------------------------*/

/*------------------------ DO NOT EDIT THE CODES BELOW UNLESS YOU KNOW WHAT YOU'RE DOING ------------------------*/

var respawnLoop = null;
var overlayClosed = false;

$(document).ready(function() {

    window.setAutoSpawn = function(e) {
        if(e) { respawnLoop = setInterval(startGame, 2000); }
        else { clearInterval(respawnLoop); }
    }

    window.joinNewRoom = function() {
        var s = $("#gamemode").val();
        setGameMode(":party");
        setGameMode(s);
    }

    window.onbeforeunload = function() {
        if(pref_askbeforeclose) {
            return "Quit game?";
        }
    }

    document.onkeydown = function(evt) {
        evt = evt || window.event;
        if(evt.keyCode == 27) { overlayClosed = false; } // KEY_ESC
        else if(evt.keyCode == 69 && pref_holdEtoW) { // KEY_E
            window.onkeydown({keyCode: 87}); // KEY_W
            window.onkeyup({keyCode: 87});
        }
    }

    editPanel();
    applyConfig();
    hookOverlay();

});

function editPanel() {
    var btnGroup = $("#agario-main-buttons div").eq(0).children();
    btnGroup.eq(1).css("width", "230px");
    btnGroup.eq(2).css("width", "112px");
    btnGroup.eq(3)
        .css("width", "112px")
        .after("<button style=\"height: 35px; display: block; float: right;\" class=\"btn btn-success btn-refresh\" onclick=\"joinNewRoom();\"><i class=\"glyphicon glyphicon-refresh\"></i></button>");

    $("#options").children().eq(4).css({ "border-bottom": "1px dashed #888", "padding-bottom": "6px" });
    $("#options").children().eq(5).css({ "border-bottom": "1px dashed #888", "padding-bottom": "6px" });
    $("#options").append('<label style="padding-top: 6px;"><input type="checkbox" onchange="setAutoSpawn($(this).is(\':checked\'));"><span>Auto spawn</span></label>');

    if(pref_holdEtoW) { $("#instructions center span[class='text-muted']").append("<span>Hold <b>E</b> to continuously eject mass</span>"); }
    if(pref_hideads) { $("#adbg").parent().hide(); }
    toggleSettings();
}

function applyConfig() {
    var checkbox = $("#options input[type=checkbox]");
    checkbox.eq(0).prop("checked", pref_noskin); setSkins(!pref_noskin);
    checkbox.eq(1).prop("checked", pref_noname); setNames(!pref_noname);
    checkbox.eq(2).prop("checked", pref_nocolor); setColors(pref_nocolor);
    checkbox.eq(3).prop("checked", pref_showmass); setShowMass(pref_showmass);
    checkbox.eq(4).prop("checked", pref_darktheme); setDarkTheme(pref_darktheme);
    checkbox.eq(5).prop("checked", pref_skipstats); setSkipStats(pref_skipstats);
    checkbox.eq(6).prop("checked", pref_autospawn); setAutoSpawn(pref_autospawn);

    $("#nick").val(pref_name);
    setGameMode(pref_gamemode);
    setRegion(pref_region);
}

function hookOverlay() {
    $("button[data-itr='play']").click(function() { overlayClosed = true; });
    $("button[data-itr='play_as_guest']").click(function() { overlayClosed = true; });
    $("button[data-itr='spectate']").click(function() { overlayClosed = false; });
}

function startGame() {
    if(overlayClosed) {
        setNick($("#nick").val());
    }
}