AttackRange Helper

Shows your attack range for the new Grepolis Casual World's

Από την 25/12/2018. Δείτε την τελευταία έκδοση.

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey, το Greasemonkey ή το Violentmonkey για να εγκαταστήσετε αυτόν τον κώδικα.

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

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey ή το Violentmonkey για να εγκαταστήσετε αυτόν τον κώδικα.

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey ή το Userscripts για να εγκαταστήσετε αυτόν τον κώδικα.

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

Θα χρειαστεί να εγκαταστήσετε μια επέκταση διαχείρισης κώδικα χρήστη για να εγκαταστήσετε αυτόν τον κώδικα.

(Έχω ήδη έναν διαχειριστή κώδικα χρήστη, επιτρέψτε μου να τον εγκαταστήσω!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Έχω ήδη έναν διαχειριστή στυλ χρήστη, επιτρέψτε μου να τον εγκαταστήσω!)

// ==UserScript==
// @name         AttackRange Helper
// @namespace    http://tampermonkey.net/
// @version      0.5
// @description  Shows your attack range for the new Grepolis Casual World's
// @author       Marvins13
// @include      http://de99.grepolis.com/game/*
// @include      https://de99.grepolis.com/game/*
// @grant        GM_addStyle
// ==/UserScript==

var pPoints = Game.player_points;
var rankingButton;
var infoButton;
load_menu_button();
load_info_button();
towns_refresh();






/*
$.get("/data/players.txt", function(Playerdata)
                   {
    var playerList = Playerdata;
    //var a = playerList.indexOf("1046261");
    var sub = playerList.split(/\r\n|\n/);
    console.log(sub);

    var player = sub.find(function(element) {
        return element.includes("9238672");
    });
    var playerArr = player.split(/,/);
    console.log(playerArr[3]);
});


$.get("/data/towns.txt", function(Towndata)
      {
    var townList = Towndata;
    //console.log(townList);
});*/


GM_addStyle ( `
    .r_city_shield_blessing {
        background: url(https://i.ibb.co/W05MsxT/dr-city-shield-blessing-a1471e5.png) no-repeat 0 0 !important;
        width: 120px !important;
        height: 72px !important;
        pointer-events: none !important;
    }

    .o_city_shield_blessing {
        background: url(https://i.ibb.co/X8cn1fK/r-city-shield-blessing-a1471e5.png) no-repeat 0 0 !important;
        width: 120px !important;
        height: 72px !important;
        pointer-events: none !important;
    }

    .b_city_shield_blessing {
        background: url(https://i.ibb.co/9crM5x6/b-city-shield-blessing-a1471e5.png) no-repeat 0 0 !important;
        width: 120px !important;
        height: 72px !important;
        pointer-events: none !important;
    }

    .g_city_shield_blessing {
        background: url(https://i.ibb.co/6YmdJVk/g-city-shield-blessing-a1471e5.png) no-repeat 0 0 !important;
        width: 120px !important;
        height: 72px !important;
        pointer-events: none !important;
    }
` );

function towns_refresh(){
    //setTimeout(function(){town_coloring();}, 3000);
    //setTimeout(function(){town_coloring();}, 5000);
    setInterval(() => town_coloring(), 3000);
}

function town_to_playerArray(){

}

function town_coloring(){
    $.get("/data/players.txt", function(Playerdata){
        var playerList = Playerdata;
        var sub2 = playerList.split(/\r\n|\n/);
        $.get("/data/towns.txt", function(Townsdata){
            var townList = Townsdata;
            var sub = townList.split(/\r\n|\n/);

            var towns = document.getElementsByClassName('flag town');
            for(var town of towns){

                if((town.nextSibling.nextSibling.classList.contains("city_shield_blessing"))||(town.nextSibling.nextSibling.classList.contains("r_city_shield_blessing"))||(town.nextSibling.nextSibling.classList.contains("b_city_shield_blessing"))){
                    //console.log(town);
                    console.log("ja");

                    var nextelement = town.nextSibling;
                    var content = nextelement.getAttribute("href");
                    var base64 = window.atob(content.substring(1));

                    var ix = base64.substring(base64.indexOf(",\"ix")+6, base64.indexOf(",\"iy"));
                    var iy = base64.substring(base64.indexOf(",\"iy")+6, base64.indexOf(",\"tp"));
                    var pos = base64.substring(base64.indexOf("island")+8, base64.indexOf("}"));
                    var search = ix+","+iy+","+pos;
                    var player_of_town = sub.find(function(element) {
                        return element.includes(search);
                    });
                    var playerArr = player_of_town.split(/,/);
                    var pl_id = playerArr[1];

                    var player = sub2.find(function(element) {
                        return element.includes(pl_id);
                    });
                    var playerArray = player.split(/,/);
                    if ((playerArray[3] < (pPoints * 0.83333333333) || playerArray[3] > (pPoints * 1.2))) {
                        town.nextSibling.nextSibling.classList.remove("city_shield_blessing");
                        town.nextSibling.nextSibling.classList.add("r_city_shield_blessing");
                    } else {
                            town.nextSibling.nextSibling.classList.remove("city_shield_blessing");
                            town.nextSibling.nextSibling.classList.add("b_city_shield_blessing");
                    }

                }else{
                    //console.log(town);
                    console.log("nein");

                    var n_nextelement = town.nextSibling;
                    var n_content = n_nextelement.getAttribute("href");
                    var n_base64 = window.atob(n_content.substring(1));

                    var n_ix = n_base64.substring(n_base64.indexOf(",\"ix")+6, n_base64.indexOf(",\"iy"));
                    var n_iy = n_base64.substring(n_base64.indexOf(",\"iy")+6, n_base64.indexOf(",\"tp"));
                    var n_pos = n_base64.substring(n_base64.indexOf("island")+8, n_base64.indexOf("}"));
                    var n_search = n_ix+","+n_iy+","+n_pos;
                    var n_player_of_town = sub.find(function(element) {
                        return element.includes(n_search);
                    });
                    var n_playerArr = player_of_town.split(/,/);
                    var n_pl_id = playerArr[1];

                    var n_player = sub2.find(function(element) {
                        return element.includes(n_pl_id);
                    });
                    var n_playerArray = n_player.split(/,/);
                    console.log(n_playerArray);
                    var style = town.nextSibling.getAttribute("style");
                    var classEle = town.nextSibling.getAttribute("class");
                    var classIn = classEle.substring(5, 12)
                    console.log(style);
                    console.log(classIn);
                    console.log(town.parentElement);
                    if ((playerArray[3] < (pPoints * 0.83333333333) || playerArray[3] > (pPoints * 1.2))) {
                        var div = document.createElement("div");
                        div.setAttribute("class","o_city_shield_blessing " + classIn);
                        div.setAttribute("style",style + " position: absolute;");
                        var duplicates = document.getElementsByClassName("o_city_shield_blessing " + classIn);
                        console.log(duplicates.length);

                        town.parentElement.appendChild(div);

                        console.log(div);
                        console.log("orange");
                    } else {
                        var div2 = document.createElement("div");
                        div2.setAttribute("class","g_city_shield_blessing " + classIn);
                        div2.setAttribute("style",style + " position: absolute;");
                        var duplicates2 = document.getElementsByClassName("g_city_shield_blessing " + classIn);
                        console.log(duplicates2.length);

                        town.parentElement.appendChild(div2);

                        console.log(div2);
                        console.log("gruen");
                    }
                    console.log("-------------------------------------------------------");
                }

                /*
                <div class="o_city_shield_blessingse lvl3" style="left: 68779px; top: 70685px; position: absolute;"></div>
                <div class="city_shield_blessing se lvl1" style="left: 69552px; top: 70251px; position: absolute;"></div>
                */

            }
        });
    });
}

function load_menu_button() {
   var rankingButtons = document.getElementsByClassName('ranking main_menu_item');
    if (rankingButtons.length === 0) {
        setTimeout(() => load_menu_button(), 500);
    } else {
        rankingButton = rankingButtons[0];
        rankingButton.addEventListener('click', () => {
            setInterval(() => att_range_ranking(), 1000);
        });
    }
}

function load_info_button(){
    infoButton = document.getElementById('info');
    if (infoButton == null) {
        setTimeout(() => load_info_button(), 100);
    } else {
        infoButton.addEventListener('click', () => {
            setInterval(() => att_range_info(), 1000);
        });
    }
}

function load_popup(){
    var popups = document.getElementsByClassName('popup_table_inside town_tooltip_table');
    if (popups.length === 0) {
        setTimeout(() => load_popup(), 500);
    } else {
        console.log('hi');
    }
}


function att_range_ranking() {
    var points = document.getElementsByClassName('r_points');
    var names = document.getElementsByClassName('r_name');

    //Coloring for the world ranking
    try{
        if (document.getElementById('ranking-index').className=="submenu_link active"){
            for(var point of points) {
                if (point.innerHTML > 0) {
                    if (point.innerHTML < (pPoints * 0.83333333333) || point.innerHTML > (pPoints * 1.2)) {
                        point.style.color = 'red';
                    } else {
                        point.style.color = 'green';
                    }
                }
            }
        }
    }catch(err){}

    //Coloring for the sea ranking
    try{
        if (document.getElementById('ranking-sea_player').className=="submenu_link active"){
            $.get("/data/players.txt", function(Playerdata){
                var playerList = Playerdata;
                var sub = playerList.split(/\r\n|\n/);
                for(var i = 0; i < names.length; i++){
                    var name = names[i];
                    var content = name.innerHTML;
                    var base64 = window.atob(content.substring(content.indexOf("href")+7, content.indexOf("class")-2));
                    var id = base64.substring(base64.indexOf("id\"")+4,base64.indexOf("}"));
                    var player = sub.find(function(element) {
                        return element.includes(id);
                    });
                    try{
                        var playerArr = player.split(/,/);
                        if (playerArr[3] < (pPoints * 0.83333333333) || playerArr[3] > (pPoints * 1.2)) {
                            points[i].style.color = 'red';
                        } else {
                            points[i].style.color = 'green';
                        }
                    }catch(err){}

                }
            });
        }
    }catch(err){}
}

function att_range_info(){
    try{

        if (document.getElementById('town_info-info').className=="submenu_link active"){
            var line = document.getElementsByClassName('list_item_left');
            var line_str = (document.getElementsByClassName('list_item_left')[0]).innerHTML;
            var a = line_str.indexOf("(");
            var b = line_str.indexOf(")");
            var player_points_line = line_str.substring(a+1,b-7);
            if (player_points_line < (pPoints * 0.83333333333) || player_points_line > (pPoints * 1.2)) {
                line[0].style.color = 'red';
            } else {
                line[0].style.color = 'green';
            }

        }
    }catch(err){}
}