AttackRange Helper

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

当前为 2018-12-24 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         AttackRange Helper
// @namespace    http://tampermonkey.net/
// @version      0.3.1
// @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();
/*
$.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 ( `
    .dr_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;
    }
` );

GM_addStyle ( `
    .hr_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;
    }
` );

GM_addStyle ( `
    .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;
    }
` );

GM_addStyle ( `
    .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 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
    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';
                }
            }
        }
    }

    //Coloring for the sea ranking
    if (document.getElementById('ranking-sea_player').className=="submenu_link active"){
        try{
            $.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){}
}