Oib Hackz

Hello

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         Oib Hackz
// @namespace    http://tampermonkey.net/
// @version      4.0
// @description  Hello
// @author       You
// @match        http://oib.io/
// @grant        none
// ==/UserScript==
//player.army.v
//
(function(){
    window.onload = function() { // Set some stuff to make the game look nicer
        window.DRAW.EASE_DELAY = 0.25;
        window.DRAW.GROUND_COLOR_DARKER = "#000022";
        window.DRAW.BORDER_MINIMAP_COLOR = "#261A49";
        window.DRAW.GAUGE_QUEEN_DISPLAY = 0.9999999999999999;
        window.DRAW.GAUGE_WIDTH = 64;
    }
    //Decode Lapa
    var decodeVar = [];
	var ArmyMaxLvl = 5;
    var MinLvlHeal = 3;
    var PPstage = 0;
    var PPotherstage = 0;
    var PPlvl1 = 6;
    var PPlvl2 = 5;
    var MinPPlvl = 3;
    var MediumPPlvl = 5;
    var Oib2PPlvl = 4;
    var PPnewlvl = 5;
    var Wait = 160;
	for (var l = 0; 40000 > l; l++){
		var decode = "lapa" + l + "mauve";
        try {
            if (typeof window[decode] != "undefined"){
                decodeVar.push(window[decode]);
                console.log(decode);
            }
        }
		catch (err){
            console.log(err.message);
		}
	}

	function loop (){
        player.select.split = true;
        player.select.feed = true;
        player.select.regroup = true;
		for (var k = 0; decodeVar[9].units.length > k; k++){
			decodeVar[9].units[k].info_delay = 9;
		}
	}
	setInterval(loop);
	// Control Keys
	var spawn = 49; //1
	var regroup = 50; //2
	var split = 51; //3
	var feed = 52; //4
	var spell = 53; //5
	var camera = 82; //r
	var select_oibs = 86; //v
	var select_queen = 66; //b
    var clearactions = 46; //space
    var healiobs = 85;
	var xPos = 0; //Mouse Position
	var yPos = 0; //Mouse Position
    var mPos = {
        x: xPos,
        y: yPos,
    };
    var MyQueen = new Object();
	//Script Keys
	var ScrptKeys = {
		MakeArmy: 76,
		FeedQueen: 48,
		SplitIobs: 33,
		ClearActions: 32,
        CleanActions: 46,
		MoveAll: 34,
		HealIobs: 85,
        PPbot: 75,
        PPbot2: 73,
        RegroupIobs: 55,
        AutoHeal: 57,
        MaxArmyLvlPlus: 187,
        MaxArmyLvlMinus: 189,
        StackIobs: 69,
        HorizontalLine: 81,
        Spawndown: 49,
        MakeBase: 113,
	};
    var flag_PPbot1 = false;
	var flag_ClearActions = false;
	var flag_FeedQueen = false;
	var flag_HealIobs = false;
	var flag_MakeArmy = false;
	var flag_MoveAll = false;
	var flag_SplitIobs = false;
    var flag_RegroupIobs = true;
    var flag_PPbot2 = false;
    var flag_Autoheal = false;
    var MaxArmyLvlplus = false;
    var MaxArmyLvlMinus = false;
    var StackIobs = false;
    var HorizontalLine = false;
    var Make_Base = false;
	var IntervalKeyHandle = setInterval(function(){
        if (flag_Autoheal == true){
            SendKey(spell);
        }
		if (flag_MakeArmy == true){
			var k = 0;
			var iobarray = [];
			setTimeout( () =>
			{
                SendKey(select_queen);
			}, 1 );
			//aquire my units
			for (k = 0; decodeVar[9].units.length > k; k++){
                if (decodeVar[9].units[k].id == player.id && decodeVar[9].units[k].queen == false && decodeVar[9].units[k].life > 0){
                    iobarray.push(decodeVar[9].units[k]);
                }
            }
			//separate low level ones
			for (k = 0; k < iobarray.length; k++){
				if (iobarray[k].level < ArmyMaxLvl){
					player.select.units.push(iobarray[k]);
				}
			}
			decodeVar[1]["regroup"]();
		}
        if (flag_RegroupIobs == true)
        {
            SendKey(select_oibs);
            SendKey(regroup);
            SendKey(select_queen);
        }
		if (flag_FeedQueen == true)
		{
			SendKey(select_oibs);
			SendKey(feed);
            SendKey(select_queen);
		}
		if (flag_MoveAll == true)
		{
            SendKey(select_oibs);
            SendRButton(xPos, yPos);
			SendKey(select_queen);
			SendRButton(xPos, yPos);
		}
		if (flag_HealIobs == true)
		{
			var MinHealth = Infinity;
			var MinLevel = Infinity;
			//split bigger
			var MyIobs = [];
			var IobIndexMinLife = -1;
			var IobIndexMinLevel = -1;
			//Get My Iobs
			for (k = 0; decodeVar[9].units.length > k; k++){
				if (decodeVar[9].units[k].id == player.id && decodeVar[9].units[k].queen == false && decodeVar[9].units[k].life > 0){
					MyIobs.push(decodeVar[9].units[k]);
				}
			}
			// - determine min health
			for (let index = 0; index < MyIobs.length; index++){
				if (MinHealth > MyIobs[index].life && MyIobs[index].level >= MinLvlHeal){
					MinHealth = MyIobs[index].life;
					IobIndexMinLife = index;
				}
			}
			player.select.clean();
			for (let index = 0; index < MyIobs.length; index++){
				if (MyIobs[index].level < MinLvlHeal){
					player.select.units.push(MyIobs[index]);
				}
			}
			player.select.units.push(MyIobs[IobIndexMinLife]);
			decodeVar[1]["regroup"]();
		}
        if (HorizontalLine == true)
        {
            SendKey(spawn);
            SendKey(select_oibs);
            SendKey(xPos = 1, yPos);
        }
        if (flag_PPbot1 == true)
        {
            PPstage++;
            if (PPstage == 1){
                if (player.army.v > 2){
                    SelectHighLevelPP();
                    deocodeVar[1]["split"]();
                    flag_HealIobs = true;
                    SendRButton(798, 558);
                    flag_HealIobs = false;
                }
                if (player.army.v > 1){
                    PPstage++;
                }
            }
            if (PPstage == 2){
                if (player.army.v > 3){
                    SelectMinLevelPP();
                    decodeVar[1]["regroup"]();
                }
                if (player.army.v > 2){
                    PPstage++;
                }
            }
            if (PPstage == 3){
                if (player.army.v > 4){
                SelectNewLevelPP();
                }
                if (player.army.v > 3){
                    SendKey(select_oibs);
                    decodeVar[1]["regroup"]();
                    PPstage++;
                }
                if (PPstage == 4){
                    if (player.army.v > 3){
                        flag_HealIobs = true;
                        flag_HealIobs = false;
                        }
                    if (player.army.v > 2){
                        flag_HealIobs = true;
                        flag_HealIobs = false;
                    }
                    PPstage = 1;
                }
            }
        }
            /*
            if (player.army.v > 2)
            {
                SelectMinLevelPP();
                decodeVar[1]["regroup"]();
                SelectOibLevelPP();
                SendRButton(258, 322);
            }
            if (player.army.v > 4)
            {
                SelectNewLevelPP(1);
            }
            */
            //Vars
/*
            var PPstage1 = false;
            var Movequeen = true;
            var Moveoib = false;
            var Moveoib2 = false;
            //Move uints
            if (Movequeen == true)
            {
                SendKey(select_queen);
                SendRButton(1, 4999);
                Movequeen = false;
                Moveoib = true;
                            }
            if (Moveoib == true)
            {
                SelectHighLevelPP();
                SendRButton(208, 558);
                Moveoib = false;
                PPstage1 = true;
                           }
            //PP sstages
            if (PPstage1 == true)
            {
                player.army.m = "PP stage 1";
                SelectHighLevelPP(1);
                decodeVar[1]["split"]();
                flag_HealIobs = true;
                SendRButton (798, 558);
                decodeVar[1]["split"](3);
                flag_HealIobs = false;
                PPstage1 = false;
            }
        }*/
        if (flag_PPbot2 == true)
        {
            PPotherstage++;
            if (PPotherstage == 1){
                if (player.army.v > 3){
                    SelectMinLevelPP();
                    decodeVar[1]["regroup"]();
                }
                if (player.army.v > 2){
                    PPotherstage++;
                }
                if (PPotherstage == 2){
                    SelectOibLevelPP();
                    if (player.army.v > 1){
                        PPotherstage++;
                    }
                }
                if (PPotherstage == 3){
                    if (player.army.v > 3){
                        SelectMinLevelPP();
                        decodeVar[1]["regroup"]();
                    }
                    if (player.army.v > 2){
                        SelectHighLevelPP();
                    }
                    if (player.army.v > 1){
                        PPotherstage++;
                    }
                }
                if (PPotherstage == 4){
                    if (player.army.v > 3){
                        SendKey(select_oibs);
                        SendKey(regroup);
                    }
                    if (player.army.v > 2){
                        SendKey(select_oibs);
                        SendKey(regroup);
                    }
                    if (player.army.v > 1){
                        PPotherstage++;
                    }
                }
            }
            /*
            if (player.army.v > 2)
            {
                SelectMinLevelPP();
                decodeVar[1]["regroup"]();
                SelectOibLevelPP(1);
                SendRButton(554, 311);
            }
            var PPothstage1 = true;
            var Moveothqueen = true;
            var Moveothoib = false;
            var Moveothoib2 = false;
            if (Moveothqueen == true)
            {
                SendKey(select_queen);
                SendRButton(808, 4999);
                Moveothqueen = false;
                Moveothoib = true;
                            }
            if (Moveothoib == true)
            {
                SendKey(select_oibs);
                SendRButton(798, 558);
                Moveothoib = false;
                PPothstage1 = true;
                           }
            if (PPothstage1 == true)
            {
                player.army.m = "PP other stage 1";
                if (player.army.v >= 3)
                {
                    SelectMinLevelPP();
                    decodeVar[1]["regroup"]();
                    SendRButton(554, 311);
                }
                SelectHighLevelPP(9);
                decodeVar[1]["split"](1);
                flag_HealIobs = true;
                SendRButton(208, 558);
                decodeVar[1]["split"](7);
                flag_HealIobs = false;
                PPothstage1 = false;
        }*/
        }
        if (Make_Base == true)
        {
            SelectHighLevel();
            SendRButton(250, 499);
        }
	}, 1 );

	function CaptureKeyPress ( a )
    {
        if(a.keyCode == ScrptKeys.MakeBase)
        {
            flag_ClearActions = false;
			flag_FeedQueen = false;
			flag_HealIobs = false;
			flag_MakeArmy = false;
			flag_MoveAll = false;
			flag_SplitIobs = false;
            flag_PPbot1 = false;
            flag_RegroupIobs = false;
            flag_PPbot2 = false;
            StackIobs = false;
            HorizontalLine = false;
            if (Make_Base == true)
            {
                player.army.m = "1";
                Make_Base = false;
                return
            }
            if (Make_Base == false)
            {
                player.army.m = "Make base";
                Make_Base = true;
                return
            }
        }
        if (a.keyCode == ScrptKeys.MaxArmyLvlPlus)
        {
            ArmyMaxLvl++;
            MinLvlHeal++;
            player.army.m = "Army lvl " + ArmyMaxLvl + " ( Min lvl heal " + MinLvlHeal + " )";
            if (flag_MakeArmy == true)
            {
                player.army.m = "Make army ( level " + ArmyMaxLvl + " )";
            }
            if (flag_HealIobs == true)
            {
                player.army.m = "Heal oibs ( Min lvl " + MinLvlHeal + " )";
            }
        }
        if (a.keyCode == ScrptKeys.MaxArmyLvlMinus)
        {
            ArmyMaxLvl--;
            MinLvlHeal--;
            player.army.m = "Army lvl " + ArmyMaxLvl + " ( Min lvl heal " + MinLvlHeal + " )";
            if (ArmyMaxLvl <= 4) {
                ArmyMaxLvl = 4;
                }
            if (MinLvlHeal <= 2)
            {
                MinLvlHeal = 2;
            }
            if (flag_MakeArmy == true)
            {
                player.army.m = "Make army ( level " + ArmyMaxLvl + " )";
            }
            if (flag_HealIobs == true)
            {
                player.army.m = "Heal oibs ( Min lvl " + MinLvlHeal + " )";
            }
        }
        if (a.keyCode == ScrptKeys.HorizontalLine)
        {
            flag_ClearActions = false;
			flag_FeedQueen = false;
			flag_HealIobs = false;
			flag_MakeArmy = false;
			flag_MoveAll = false;
			flag_SplitIobs = false;
            flag_PPbot1 = false;
            flag_RegroupIobs = false;
            flag_PPbot2 = false;
            if (HorizontalLine == true)
            {
                HorizontalLine = false;
                player.army.m = "1";
                return
            }
            if (HorizontalLine == false)
            {
                HorizontalLine = true;
                player.army.m = "Horizontal line";
                return
            }
        }
        if (a.keyCode == ScrptKeys.AutoHeal)
        {
            if ( flag_Autoheal == true )
			{
				flag_Autoheal = false;
                player.army.m = "Auto heal or auto spell oibs off";
				return
			}
			if ( flag_Autoheal == false )
			{
				flag_Autoheal = true;
                player.army.m = "Auto heal oibs (angel)/ auto spell oibs (witch) on";
				return
			}
        }
        if ( a.keyCode == ScrptKeys.RegroupIobs )
        {
            flag_ClearActions = false;
			flag_HealIobs = false;
			flag_MakeArmy = false;
			flag_MoveAll = false;
			flag_SplitIobs = false;
            flag_PPbot1 = false;
            flag_FeedQueen = false;
            StackIobs = false;
            HorizontalLine = false;
			if ( flag_RegroupIobs == true )
			{
				flag_RegroupIobs = false;
                player.army.m = "1";
				return
			}
			if ( flag_RegroupIobs == false )
			{
				flag_RegroupIobs = true;
                player.army.m = "Regroup oibs";
				return
			}
        }
        if ( a.keyCode == ScrptKeys.PPbot2 )
        {
            flag_ClearActions = false;
			flag_FeedQueen = false;
			flag_HealIobs = false;
			flag_MakeArmy = false;
			flag_MoveAll = false;
			flag_SplitIobs = false;
            flag_RegroupIobs = false;
            flag_PPbot1 = false;
            StackIobs = false;
            HorizontalLine = false;
            if ( flag_PPbot2 == true )
			{
				flag_PPbot2 = false;
                player.army.m = "1";
				return
			}
			if ( flag_PPbot2 == false )
			{
				player.select.clean();
				flag_PPbot2 = true;
                player.army.m = "PP bot 2 turned on"
				return
			}
        }
        if ( a.keyCode == ScrptKeys.PPbot )
        {
            flag_ClearActions = false;
			flag_FeedQueen = false;
			flag_HealIobs = false;
			flag_MakeArmy = false;
			flag_MoveAll = false;
			flag_SplitIobs = false;
            flag_RegroupIobs = false;
            flag_PPbot2 = false;
            StackIobs = false;
            HorizontalLine = false;
            if ( flag_PPbot1 == true )
			{
				flag_PPbot1 = false;
                player.army.m = "1";
				return
			}
			if ( flag_PPbot1 == false )
			{
				player.select.clean();
				flag_PPbot1 = true;
                player.army.m = "PP bot turned on"
				return
			}
        }
		if ( a.keyCode == ScrptKeys.MakeArmy )
		{
			flag_ClearActions = false;
			flag_FeedQueen = false;
			flag_HealIobs = false;
			flag_MoveAll = false;
			flag_SplitIobs = false;
            flag_PPbot1 = false;
            flag_RegroupIobs = false;
            flag_PPbot2 = false;
            StackIobs = false;
            HorizontalLine = false;
			if ( flag_MakeArmy == true )
			{
				flag_MakeArmy = false;
                player.army.m = "1";
				return
			}
			if ( flag_MakeArmy == false )
			{
				player.select.clean();
				flag_MakeArmy = true;
                player.army.m = "Make army ( level " + ArmyMaxLvl + " )";
				return
			}
		}
		if ( a.keyCode == ScrptKeys.HealIobs )
		{
			flag_ClearActions = false;
			flag_FeedQueen = false;
			flag_MakeArmy = false;
			flag_MoveAll = false;
			flag_SplitIobs = false;
            flag_PPbot1 = false;
            flag_RegroupIobs = false;
            flag_PPbot2 = false;
            StackIobs = false;
            HorizontalLine = false;
			if ( flag_HealIobs == true )
			{
				flag_HealIobs = false;
                player.army.m = "1";
				return
			}
			if ( flag_HealIobs == false )
			{
				player.select.clean();
				flag_HealIobs = true;
                player.army.m = "Heal oibs ( Min lvl " + MinLvlHeal + " )"
				return
			}
		}
		if ( a.keyCode == ScrptKeys.FeedQueen )
		{
			flag_ClearActions = false;
			flag_HealIobs = false;
			flag_MakeArmy = false;
			flag_MoveAll = false;
			flag_SplitIobs = false;
            flag_PPbot1 = false;
            flag_RegroupIobs = false;
            flag_PPbot2 = false;
            StackIobs = false;
            HorizontalLine = false;
			if ( flag_FeedQueen == true )
			{
				flag_FeedQueen = false;
                player.army.m = "1";
				return
			}
			if ( flag_FeedQueen == false )
			{
				flag_FeedQueen = true;
                player.army.m = "Feed queen";
				return
			}
		}
		if ( a.keyCode == ScrptKeys.SplitIobs )
		{
			flag_ClearActions = false;
			flag_FeedQueen = false;
			flag_HealIobs = false;
			flag_MakeArmy = false;
			flag_MoveAll = false;
			flag_SplitIobs = false;
            flag_PPbot1 = false;
            flag_RegroupIobs = false;
            flag_PPbot2 = false;
            StackIobs = false;
            HorizontalLine = false;
            player.army.m = "Split bigger"
			player.select.clean();
			SelectHighLevel();
			decodeVar[ 1 ][ "split" ]();
			SelectHighLevel();
			decodeVar[ 1 ][ "split" ]();
		}
		if ( a.keyCode == ScrptKeys.ClearActions )
		{
			flag_ClearActions = false;
			flag_FeedQueen = false;
			flag_HealIobs = false;
			flag_MakeArmy = false;
			flag_MoveAll = false;
			flag_SplitIobs = false;
            flag_PPbot1 = false;
            flag_RegroupIobs = false;
            flag_PPbot2 = false;
            StackIobs = false;
            HorizontalLine = false;
            player.army.m = "1";
			return
		}
        if ( a.keyCode == ScrptKeys.CleanActions )
		{
			flag_ClearActions = false;
			flag_FeedQueen = false;
			flag_HealIobs = false;
			flag_MakeArmy = false;
			flag_MoveAll = false;
			flag_SplitIobs = false;
            flag_PPbot1 = false;
            flag_RegroupIobs = false;
            flag_PPbot2 = false;
            StackIobs = false;
            HorizontalLine = false;
            player.army.m = "1";
			return
		}
		if ( a.keyCode == ScrptKeys.MoveAll )
		{
			flag_ClearActions = false;
			flag_FeedQueen = false;
			flag_HealIobs = false;
			flag_MakeArmy = false;
			flag_SplitIobs = false;
            flag_PPbot1 = false;
            flag_RegroupIobs = false;
            flag_PPbot2 = false;
            StackIobs = false;
            HorizontalLine = false;
			if ( flag_MoveAll == true )
			{
				flag_MoveAll = false;
                player.army.m = "1";
				return
			}
			if ( flag_MoveAll == false )
			{
				flag_MoveAll = true;
                player.army.m = "Move all";
				return
			}
		}
	}
	var captureMousePos = function ( event )
	{
		xPos = event.clientX;
		yPos = event.clientY;
	}
	/*
	var onMousedown = function ( e )
	{
		if ( e.which === 1 ) //LeftMouse
		{
			SendKey( select_queen );
			SendRButton( xPos, yPos );
			SendKey( camera );
		}
		else if ( e.which === 3 ) // RightMouse
		{
			SendKey( select_oibs );
			SendRButton( xPos, yPos );
			SendKey( camera );
		}
	}
	*/
//stop action
    function stopDefAction(evt){
    evt.preventdefault();
    }
    //PP functions
    //select high level pp
    function SelectHighLevelPP ()
	{
		player.select.clean();
        var k = 0;
		var iobarray = [];
		var selectiob = [];
		for ( k = 0; decodeVar[ 9 ].units.length > k; k++ )
		{
			if ( decodeVar[ 9 ].units[ k ].id == player.id && decodeVar[ 9 ].units[ k ].queen == false && decodeVar[ 9 ].units[ k ].life > 0 )
			{
				iobarray.push( decodeVar[ 9 ].units[ k ] );
			}
		}
		for ( k = 0; k < iobarray.length; k++ )
		{
			if ( iobarray[ k ].level >= PPlvl1 )
			{
				selectiob.push( iobarray[ k ] );
			}
		}
		if ( selectiob.length == 0 )
		{
			return false
		}
		else
		{
			for ( k = 0; k < selectiob.length; k++ )
			{
				if ( selectiob[ k ].level >=PPlvl1 )
				{
					player.select.units.push( selectiob[ k ] );
				}
			}
			return true
		}
	}
    //select medium lvl pp

        function SelectMediumLevelPP ()
	{
player.select.clean();
        var k = 0;
		var iobarray = [];
		var selectiob = [];
		for ( k = 0; decodeVar[ 9 ].units.length > k; k++ )
		{
			if ( decodeVar[ 9 ].units[ k ].id == player.id && decodeVar[ 9 ].units[ k ].queen == false && decodeVar[ 9 ].units[ k ].life > 0 )
			{
				iobarray.push( decodeVar[ 9 ].units[ k ] );
			}
		}
		for ( k = 0; k < iobarray.length; k++ )
		{
			if ( iobarray[ k ].level == MediumPPlvl )
			{
				selectiob.push( iobarray[ k ] );
			}
		}
		if ( selectiob.length == 0 )
		{
			return false
		}
		else
		{
			for ( k = 0; k < selectiob.length; k++ )
			{
				if ( selectiob[ k ].level == MediumPPlvl )
				{
					player.select.units.push( selectiob[ k ] );
				}
			}
		}
    }
    //select min lvl pp
            function SelectMinLevelPP ()
	{
		player.select.clean();
        var k = 0;
		var iobarray = [];
		var selectiob = [];
		for ( k = 0; decodeVar[ 9 ].units.length > k; k++ )
		{
			if ( decodeVar[ 9 ].units[ k ].id == player.id && decodeVar[ 9 ].units[ k ].queen == false && decodeVar[ 9 ].units[ k ].life > 0 )
			{
				iobarray.push( decodeVar[ 9 ].units[ k ] );
			}
		}
		for ( k = 0; k < iobarray.length; k++ )
		{
			if ( iobarray[ k ].level <= MinPPlvl )
			{
				selectiob.push( iobarray[ k ] );
			}
		}
		if ( selectiob.length == 0 )
		{
			return false
		}
		else
		{
			for ( k = 0; k < selectiob.length; k++ )
			{
				if ( selectiob[ k ].level <= MinPPlvl )
				{
					player.select.units.push( selectiob[ k ] );
				}
			}
			return true
		}
	}
    //select new lvl pp
                function SelectOibLevelPP ()
	{
		player.select.clean();
        var k = 0;
		var iobarray = [];
		var selectiob = [];
		for ( k = 0; decodeVar[ 9 ].units.length > k; k++ )
		{
			if ( decodeVar[ 9 ].units[ k ].id == player.id && decodeVar[ 9 ].units[ k ].queen == false && decodeVar[ 9 ].units[ k ].life > 0 )
			{
				iobarray.push( decodeVar[ 9 ].units[ k ] );
			}
		}
		for ( k = 0; k < iobarray.length; k++ )
		{
			if ( iobarray[ k ].level == Oib2PPlvl )
			{
				selectiob.push( iobarray[ k ] );
			}
		}
		if ( selectiob.length == 0 )
		{
			return false
		}
		else
		{
			for ( k = 0; k < selectiob.length; k++ )
			{
				if ( selectiob[ k ].level == Oib2PPlvl )
				{
					player.select.units.push( selectiob[ k ] );
				}
			}
			return true
		}
	}
    //select new level
                    function SelectNewLevelPP ()
	{
		player.select.clean();
        var k = 0;
		var iobarray = [];
		var selectiob = [];
		for ( k = 0; decodeVar[ 9 ].units.length > k; k++ )
		{
			if ( decodeVar[ 9 ].units[ k ].id == player.id && decodeVar[ 9 ].units[ k ].queen == false && decodeVar[ 9 ].units[ k ].life > 0 )
			{
				iobarray.push( decodeVar[ 9 ].units[ k ] );
			}
		}
		for ( k = 0; k < iobarray.length; k++ )
		{
			if ( iobarray[ k ].level == PPnewlvl )
			{
				selectiob.push( iobarray[ k ] );
			}
		}
		if ( selectiob.length == 0 )
		{
			return false
		}
		else
		{
			for ( k = 0; k < selectiob.length; k++ )
			{
				if ( selectiob[ k ].level == PPnewlvl )
				{
					player.select.units.push( selectiob[ k ] );
				}
			}
			return true
		}
	}
    //end
	function SelectHighLevel ()
	{
		player.select.clean();
		//split bigger
        var k = 0;
		var iobarray = [];
		var splitiob = [];
		for ( k = 0; decodeVar[ 9 ].units.length > k; k++ )
		{
			if ( decodeVar[ 9 ].units[ k ].id == player.id && decodeVar[ 9 ].units[ k ].queen == false && decodeVar[ 9 ].units[ k ].life > 0 )
			{
				iobarray.push( decodeVar[ 9 ].units[ k ] );
			}
		}
		for ( k = 0; k < iobarray.length; k++ )
		{
			if ( iobarray[ k ].level > ArmyMaxLvl )
			{
				splitiob.push( iobarray[ k ] );
			}
		}
		if ( splitiob.length == 0 )
		{
			return false
		}
		else
		{
			for ( k = 0; k < splitiob.length; k++ )
			{
				if ( splitiob[ k ].level > ArmyMaxLvl )
				{
					player.select.units.push( splitiob[ k ] );
				}
			}
			return true
		}
	}
//move oibs to queen
    function MoveOibToQueen(r){
        xPos = MyQueen;
        yPos = MyQueen;
        SendRButton(xPos, yPos);
    }

	function SendKey ( k )
	{
		var ev = new KeyboardEvent( 'keydown',
			{
				'keyCode': k,
				'which': k
			} );
		window.dispatchEvent( ev );
		ev = new KeyboardEvent( 'keyup',
			{
				'keyCode': k,
				'which': k
			} );
		window.dispatchEvent( ev );
	}

	function SendRButton ( x, y )
	{
		var ev = new window.MouseEvent( "mouseup",
			{
				clientX: x,
				clientY: y,
				button: 2
			} );
		window.dispatchEvent( ev );
	}

	function SendLButton ( x, y )
	{
		var ev = new window.MouseEvent( "mouseup",
			{
				clientX: x,
				clientY: y,
				button: 1
			} );
		window.dispatchEvent( ev );
	}
	window.addEventListener( "keydown", CaptureKeyPress );
	window.addEventListener( "mousemove", captureMousePos );
    var linesize = 10;
    function MoveOibLine(r, k)
    {
        var a = {
            x: player.cam.rx,
            y: player.cam.ry
        };
        var b = {
            x: r.x - (player.army.v * (linesize / 2)) + (k * linesize),
            y: r.y
        };
         var PosBackUp = {
            x: b.x.toString(),
            y: b.y.toString()
        };
        SendRButton({
            x: parseInt(PosBackUp.x, 10),
            y: parseInt(PosBackUp.y, 10)
        });
    }
	//window.addEventListener( "mousedown", onMousedown );
} )();
var ifrm = document.createElement("iframe");
ifrm.setAttribute("src", "about:blank");
ifrm.style.width = window.outerWidth-10;
ifrm.style.height = window.outerHeight/3*2;
ifrm.style.display = 'none';
document.body.appendChild(ifrm);
var win = ifrm.contentWindow;
window.de = win.dispatchEvent;
var spawn = setKey(49); //1
var regroup = setKey(50); //2
var split = setKey(51); //3
var feed = setKey(52); //4
var spell = setKey(53); //5
var select_oibs = setKey(86); //v
var select_queen = setKey(66);//b
var automine = false;
var autospawn= false;
var autospell = false;
var autofuse = false;
var oibminecnt = false;
var f = 220;
var backslash = 70;
var autofeed = false;
var autosplit = false;
var x = 1, y = 1;
var Keys = {interval:80,autospawn:54,mine:70,setkey:27,split:200}
var tima = setInterval(autoing, Keys.interval);
var rainbow = 100000
var rainbowtick = setInterval(rainbowxp, 100);
function rainbowxp(){
    rainbow += 1111;
    LOADER.COLOR_BAR = "#" + rainbow;
    DRAW.XP_COLOR = "#" + rainbow;
    DRAW.XP_REST_COLOR = "#080808";
    if (rainbow >= 161616){
        rainbow = 100000;
    }}
function autoing(){
    if(autospawn) action(spawn);
    if(automine){
        automine = false;
        action(select_oibs);
        action(feed);
        action(select_queen);
        mouseClick();
    }
    function split(){
        if(autosplit){
            autosplit = false;
            action(select_oibs);
            action(split);
            mouseClick();
        }
}
}
function KeyCheck(a){
    if(a.keyCode==Keys.autospawn){
        autospawn = !autospawn;
    }
    if(a.keyCode==Keys.mine){
        automine = true;
    }
    if(a.KeyCode==Keys.split){
        autosplit = true;
    }
    if(a.keyCode==Keys.setkey){
        if (!a.metaKey) {
            a.preventDefault();
        }
        setKeys();
    }
//   }
}
window.addEventListener("keydown",KeyCheck,true);
var captureMousePos = function(event){
              x = event.clientX;
    y = event.clientY;
}
window.addEventListener("mousemove", captureMousePos, true)
function setKeys(){
    try{
        var keys = prompt("Change Keys, values in keycodes",JSON.stringify(Keys).replace(/^\7{+|\}+$/g, ''));
        if(keys === null) return;
        JSON.parse('{'+keys+'}');
        if(k.interval){
            Keys.interval = k.interval;
            clearInterval(tima);
            tima = setInterval(ohno, Keys.interval);
        }
        if(k.autospawn)
            Keys.autospawn = k.autospawn;
        if(k.mine)
            Keys.mine = k.mine;
        if(k.split)
            Keys.split = k.split;
        if(k.setkey)
            Keys.setkey = k.setkey;
    }
    catch(err){confirm("Error" + err.message);}
}
function setKey(k){
    var ev = new win.Event("keydown");
    ev.keyCode = k;
    return ev;
}
function action(a){
    window.de(a);
}
function mouseClick(){
    var ev = new win.MouseEvent("mouseup",{clientX:x,clientY:y,button:2})
    action(ev);
}

alert('nControls :n6 - autospawn ,n\ - automine')