Одобренные скрипты

Bear

Комьюнити менеджер
Член команды
Комьюнити менеджер
Оценка реакций
1.024
Тема была любезно предоставлена .US сервером (оригинал)

Спасибо RatedRR за предоставленую сборку

Одобренные скрипты:


  • Наложение данных на карту - Последние атаки - пока не доступна для новой версии
    Код:
    javascript:(window.main||self).$.getScript('http://ftp.innogames.net/~tracey/scripts/map_attack_overlay.js',function(){
    var script=new MapAttackOverlay();
    script.execute();});
    void(0);
    Описание: Этот скрипт работает на карте добавляя ещё один графический слой, который указывает на прошедшее время с последней атаки.
    mapoverlay.png
    Примечание: Если английские единицы измерения времени вас не устраивают - дайте знать и скрипт будет переведён на русский.
    _______________________
  • Генератор скрипта входящих атак - еще не переделан на под наш сервер
    Код:
    javascript: var format = "{unit} {sent} {coords} {player} {duration} {distance} {return} {attack_id}";
    var titleArr = ["Scout", "LC", "HC", "Axe", "Sword", "Ram", "***Noble***"];
    var showMS = false;
    var n = 'fnGenerateTaggerScript';
    var s = 'http://crosstrigger.com/tw/generate_tagger.js';
    var a = (window.frames.length > 0) ? window.main : window;
    var z = 0;
    
    function c(m) {
        a.document.body.appendChild(a.document.createTextNode(m));
        a.document.body.appendChild(a.document.createElement('br'));
    }
    function e() {
        if (!a.document.getElementById(n)) {
            c("Embedding Script...");
            var A = a.document.createElement('script');
            A.id = n;
            A.type = 'text/javascript';
            A.src = s + '?' + Math.round(Math.random() * 1000000);
            a.document.getElementsByTagName("head")[0].appendChild(A);
            setTimeout(e, 1000);
            return false;
        }
        if (typeof(a.fnGenerateTaggerScript) == "undefined") {
            c("Finalizing Script...");
            setTimeout(e, 1000);
            return false;
        }
        try {
            c("Executing Script" + (z > 0 ? " (retry " + z + ")" : "") + "...");
            a.fnGenerateTaggerScript(format, titleArr, showMS);
        } catch (errorObj) {
            z++;
            if (z < 3) {
                setTimeout(e, 1000);
            } else {
                c("Script Failed");
            }
            return false;
        }
        return true;
    }
    e();void(0);
    }​
    Автор: Dalesmckay
    Описание: Создаёт настраиваемый сценарий(скрипт) переименования входящей атаки. Подгружает скоростные данные войск и мира для точной обработки данных. Произведённый с данным скриптом сценарий(скрипт) соответствует правилам игры.
    attacktaggergenerator.png
    _______________________
  • Планировщик операций - еще не переделан на под наш сервер
    Код:
    Javascript: $.getScript("http://dl.dropbox.com/u/24469843/Tribalwars/Scripts/op_gen.js"); void(0);
    Автор: Stotty2009
    Описание:Скрипт создает план операции против игрока с его профиля.
    operationgen.png
    _______________________
  • Скрипт массового набора - Обсуждение
    Код:
    javascript: var n = prompt("
                               1.insert  your name
                               2.insert your name
                               3.insert your name
                               4.insert your  name
                               5.insert your name
                               6.insert your name
    ", "0");n = parseInt(n);
    if (n == 1) {
        var units = [0, 200, 0, 0, 15, 0, 0, 2191, 0, 100];
    } else if (n == 2) {
        var units = [0, 0, 0, 0, 15, 30, 0, 0, 0, 0];
    } else if (n == 3) {
        var units = [0, 0, 0, 0, 15, 0, 0, 0, 0, 40];
    } else if (n == 4) {
        var units = [0, 400, 0, 0, 15, 0, 0, 2191, 0, 100];
    } else if (n == 5) {
        var units = [0, 0, 0, 0, 15, 0, 0, 0, 0, 0];
    } else if (n == 6) {
        var units = [0, 8, 0, 7, 0, 0, 0, 0, 0, 100];
    } else {
        var units = [0, 0, 0, 0, 0, 0, 0, 0];
    }
    var farm = 200;
    var res = [0, 0, 0];
    if (game_data.mode != 'mass') $(location).attr('href', game_data.link_base_pure + 'train&mode=mass');
    
    function D(a, b) {
        v = [];
        if (a.length == b.length) {
            for (t = 0; t < a.length; t++) {
                if (b[t] != 0) {
                    v[t] = a[t] * 1.0 / b[t]
                } else {
                    v[t] = 0
                }
            }
        }
        return v
    }
    function Q(r) {
        v = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
        for (u = 3; u < r.cells.length; u++) {
            try {
                v[u - 3] = parseInt(r.cells[u].childNodes[1].childNodes[1].firstChild.title, 10)
            } catch (e) {}
            if (isNaN(v[u - 3])) {
                v[u - 3] = 0
            }
        }
        return v
    }
    function R(r) {
        v = [0, 0, 0, 0];
        var s = r.cells[1].textContent.split("\n");
        var f = r.cells[2].innerHTML.split("/");
        v[0] = parseInt(s[1].replace(".", ""), 10) - res[0];
        v[1] = parseInt(s[2].replace(".", ""), 10) - res[1];
        v[2] = parseInt(s[3].replace(".", ""), 10) - res[2];
        v[3] = f[1] - f[0] - farm;
        return v
    }
    function P(r) {
        v = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
        for (u = 3; u < r.cells.length; u++) {
            try {
                v[u - 3] = parseInt(r.cells[u].childNodes[1].textContent.split("\n")[2], 10)
            } catch (e) {}
            if (isNaN(v[u - 3])) {
                v[u - 3] = 0
            }
        }
        return v
    }
    c = $("table.vis");c = c[2].rows;
    if ($("#mass_train_table  [src*=unit_archer]").length == 0) {
        f = ["spear", "sword", "axe", "spy", "light", "heavy", "ram", "catapult"];
        s = [[50, 30, 10, 1], [30, 30, 70, 1], [60, 30, 40, 1], [50, 50, 20, 2], 
    		[125, 100, 250, 4], [200, 150, 600, 6], [300, 200, 200, 5], [320, 400, 100, 8]]
    } else {
        f = ["spear", "sword", "axe", "archer", "spy", "light", "marcher", "heavy", "ram", "catapult"];
        s = [[50, 30, 10, 1], [30, 30, 70, 1], [60, 30, 40, 1], [100, 30, 60, 1], [50, 50, 20, 2], 
    		[125, 100, 250, 4], [250, 100, 150, 5], [200, 150, 600, 6], [300, 200, 200, 5], [320, 400, 100, 8]]
    }
    for (r = 1; r < c.length; r++) {
        b = [];
        z = [0, 0, 0, 0];
        for (i = 0; i < f.length; i++) {
            b[i] = units[i] - (Q(c[r])[i] + P(c[r])[i]);
            if (b[i] < 0) {
                b[i] = 0
            }
            for (j = 0; j < 4; j++) {
                z[j] += s[i][j] * b[i]
            }
        };
        a = D(R(c[r]), z), h = a[0];
        for (t = 1; t < a.length; t++) {
            if (a[t] < h) {
                h = a[t]
            }
        }
        if (h > 1.0) {
            h = 1.0
        }
        for (i = 0; i < f.length; i++) {
            n = b[i] * h;
            if (n < 0) {
                n = 0
            }
            if (n > 1) {
                if (c[r].cells[3 + i].childNodes[3]) {
                    x = c[r].cells[3 + i].childNodes[3];
                    x.value = parseInt(n, 10)
                }
            }
        }
    }
    end()
    Описание:Скрипт для массового рекрутирования войск.
    Вставляйте номер выбранной группы в выпадающее окошко и рекрутирование пройдет по описанной в скрипте форме. Группы и соотношение войск легко меняются в самом скрипте
    _______________________
  • Сортировщик атак - еще не переделан на под наш сервер
    Код:
    javascript: function c() {
        var a = (window.frames.length > 0) ? window.main.document : document;
        var b = a.createElement('script');
        b.type = 'text/javascript';
        b.src = 'http://www.crosstrigger.com/tw/sort.js?' 
            + Math.round(Math.random() * 1000000);
        a.getElementsByTagName('head')[0].appendChild(b);
    }
    c();​
    Описание:Если вас небыло во время атаки, то этот скрипт поможет определить атаку по ее идентификационному номеру(каждая атака в игре получает свой порядковый номер)
    t6cscj.jpg
    _______________________
  • TribalWars Map – Внешний инструмент - автоматический выбор мира пока не рабоет, но скоро появится
    Код:
    javascript: var url = 'http://www.tribalwarsmap.com/ru/traveltimes2';
    if (location.hostname.split('.')[1] == 'tribalwars') {
        url += '?world=';
        var world = location.hostname.split('.')[0];
        if (world == 'classic') {
            url += 'c1';
        } else {
            url += world.substring(2);
        };
        var query = '';
        if (window.main) {
            query = window.main.location.search.substring(1).split('&');
        } else {
            query = window.location.search.substring(1).split('&');
        };
        var village = false;
        var dest = false;
        for (i = 0; i < query.length; i++) {
            query[i] = query[i].split('=');
            if (query[i][0] == 'village') {
                url += '&start=' + query[i][1];
            } else if (query[i][0] == 'screen' && query[i][1] == 'info_village') {
                village = true;
            } else if (query[i][0] == 'id') {
                dest = '&destination=' + query[i][1];
            }
        };
        if (village && dest) {
            url += dest;
        }
    }
    void window.open(url);​
    Summary:Скрипт открывает инструмент расчёта времени от TribalWars Map. Вставляет данные мира и весьма быстро и удобно помогает рассчитать время.
    twmap.png
    _______________________
  • Добавление колонок добычи - еще не переделан на под наш сервер
    Код:
    javascript: var ukScript = "http://ftp.innogames.net/~tracey/scripts/twcheese_commandHauls.js";
    var gameDoc = (window.frames.length > 0) ? window.main.document : document;
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = ukScript;
    gameDoc.getElementsByTagName('head')[0].appendChild(script);
    void(0);
    Автор: cheesasaurus
    Описание: Скрипт добавляет ресурсы, которые несут ваши войска домой, в обзоре приказов.
    resourceColumn.png
    _______________________
  • Battle Report Evaluator
    Код:
    javascript:var%20ukScript="http://ftp.innogames.net/~tracey/scripts/twcheese_BRE.js";var%20gameDoc=(window.frames.length>0)?window.main.document:document;var%20script=document.createElement('script');script.type='text/javascript';script.src=ukScript;gameDoc.getElementsByTagName('head')[0].appendChild(script);void(0);
    Author: cheesasaurus
    Summary: Run from a report it allows you to break down the required information that you need. Other features run from the report overview also occur.
    _______________________
  • Спам-генератор
    Код:
    javascript: function c() {
        var a = (window.frames.length > 0) ? window.main.document : document;
        var b = a.createElement('script');
        b.type = 'text/javascript';
        b.src = 'http://www.crosstrigger.com/tw/fake_maker.js?' + Math.round(Math.random() * 1000000);
        a.getElementsByTagName('head')[0].appendChild(b);
    }
    c();​
    Автор: dalesmckay
    Описание: Берёт координаты страницы игрока и создает спамскрипы по континентам и на все деревни.
    _______________________
  • Групировка деревень - пока не рабоет
    Код:
    javascript: function c() {
        var a = document;
        if (window.frames.length > 0) a = window.main.document;
        var b = a.createElement('script');
        b.type = 'text/javascript';
        b.src = 'http://www.the-hangout.co.cc/Tribalwars/js/grouper.js';
        a.getElementsByTagName('head')[0].appendChild(b);
    }
    c();​
    Автор:The-Hangout
    Описание: Выбирает деревни в обзоре групп по заданным параметрам
    k9vo5s.jpg
    _______________________
  • Snipe
    Код:
     javascript: function c() {
        try {
            var a = (window.frames.length > 0) ? window.main.document : document;
            var n = 'snipe_script';
            var u = 'http://www.crosstrigger.com/tw/snipe.js?' + Math.round(Math.random() * 1000000);
            if (!a.URL.match(/screen\=overview_villages\&mode\=combined/i)) {
                window.location.search = 'screen=overview_villages&mode=combined' + '&' + String(a.URL.match(/[\&\?]t\=\d+/i)).replace(/[\?\&]/, '');
                return false;
            }
            if (a.getElementById(n)) {
                return false;
            }
            var b = a.createElement('script');
            b.id = n;
            b.type = 'text/javascript';
            b.src = u;
            a.getElementsByTagName('head')[0].appendChild(b);
        } catch (o) {
            alert('Error: ' + String(o.message || o));
        }
    }
    c();
    void(0);​
    Автор: Dalesmckay
    Описание: Creates a notebook output for when to snipe an incoming attack and where from. However, milliseconds have to be added onto the times. Valuable for sniping any noble train.
    snipez.png
    _______________________
  • Блокировка отсчёта времени
    Код:
     javascript: if (timers.length > 0) {
        tmptimers = timers;
        timers = [];
    } else {
        timers = tmptimers;
    }
    void(0);
    ​
    Автор: Morthy
    Описание: Остановка и запуск отсчёта времени.
_______________________
  • Счетчик войск
    Код:
    javascript:$.getScript('http://www.crosstrigger.com/tw/v7/troop_counter.js');void(0);
    Автор: Dalesmckay
    Описание: Считает войска в обзоре войск и распределяет в различные группы, которые можно потом вывести списком координат.
    _______________________
  • Переназвать деревни по локации с континентом
    Код:
    javascript: var doc = (window.frames.length > 0) ? window.main.document : document;
    var eleCoords = $('#base_coords')[0];
    if (eleCoords) {
        rename(eleCoords.value.match(/(\d+)\|(\d+)/));
    } else {
        $('#combined_table th:contains("Village")').html(
            'Target Village: <input type=text id="base_coords" value="50|50"/>');
    }
    
    function zeroPad(number, length) {
        var n = number.toString();
        while (n.length < length) {
            n = "0" + n;
        }
        return n;
    }
    
    function SQ(x) {
        return Math.pow(x, 2);
    }
    
    function V(z) {
        return (z % 25100);
    }
    
    function D(s, d) {
        return Math.round(Math.sqrt(SQ(V(d[1]) - V(s[1])) + SQ(V(d[2]) - V(s[2]))));
    }
    
    function K(x, y) {
        return (Math.floor(y / 100) * 10) + Math.floor(x / 100);
    }
    
    function rename(base) {
        var coord;
        base[1] = parseInt(base[1], 10);
        base[2] = parseInt(base[2], 10);
        $('#combined_table span[id*=label_text_],
          #combined_table input').each(function(index, element) {
            if (element.id.match(/label_text_/i)) {
                coord = element.innerHTML.match(/(\d+)\|(\d+)/);
            } else if (element.id.match(/edit_input_/i)) {
                var xx = parseInt(coord[1], 10);
                var yy = parseInt(coord[2], 10);
                var ns = (V(yy) < 50) ? 'N' : 'S';
                var ew = (V(xx) < 50) ? 'W' : 'E';
                var nm = 'K' + zeroPad(K(xx, yy), 2) + ' ' + ns + ew + ' ' 
                    + zeroPad(D(coord, base), 3);
                element.value = nm;
            } else if (element.type == "button") {
                element.click();
            }
        });
    }
    void(0);​
    Автор: seekingtruth
    Описание: Переназывает деревни по следующимими способами:
    • KYX: K - континент деревни.
    • Компас: 4 направления компаса NE, NW, SW, SE.
    • Поля от центра континента
_______________________

  • Переименовщик команд
    Код:
    javascript: function e() {
        var n = "rename&delete",
            s = "http://damouse.wartool.net/collectables/rename_delete_main.js";
        var a = window.frames.length > 0 ? window.main : window;
    
        function c(m) {
            a.document.body.appendChild(a.document.createTextNode(m));
            a.document.body.appendChild(a.document.createElement("br"))
        }
        if (a.document.getElementById(n) == null) {
            c("Creating script entry in doc head...");
            var A = a.document.createElement("script");
            A.id = n;
            A.type = "text/javascript";
            A.src = s;
            a.document.getElementsByTagName("head")[0].appendChild(A);
            setTimeout(e, 500);
            return
        }
        if (typeof a.document.getElementById(n) == "undefined" || typeof a.appendIcons == 'undefined') {
            c("Loading script...");
            setTimeout(e, 200);
            return 0
        }
        c("Loaded");
        if (a.document.URL.match(/screen=report/)) {
            eval("a.appendIcons('fake')")
        } else {
            eval("a.overView()")
        }
    }
    e();​
    Автор: Dalesmckay
    Описание: Переименование исходящих атак по определенным критериям.
    _______________________
  • Proximity Script
    Код:
    javascript: var central = prompt("Coords  Plox!", "");
    var win = window.frames.length > 0 ? window.main : window;
    var J = win.$;
    var doc = window.document;
    var table = J("table[id$=_table]").filter(":not(#group_table)").get(0);
    var rows = [];
    var q;
    var p;
    var rowHeight = table.rows[1].cells[0].rowSpan;
    
    function get_distance(a, b) {
        var a = a.split("|");
        var b = b.split("|");
        var c = b[0] - a[0];
        var d = b[1] - a[1];
        return Math.sqrt(c * c + d * d)
    }
    for (q = 1; q < table.tBodies[0].rows.length; q += rowHeight) {
        var row = table.tBodies[0].rows[q];
        var coords = J.trim(J(row.cells[0]).text()).match(/\((\d+\|\d+)\)  +K\d+$/)[1];
        var rowGroup = [];
        for (p = 0; p < rowHeight; ++p) {
            rowGroup[p] = table.tBodies[0].rows[q + p]
        }
        rows[(q - 1) / rowHeight] = [coords, rowGroup]
    }
    rows = rows.sort(function(a, b) {
        return get_distance(a[0], central) - get_distance(b[0], central)
    });
    for (q = 0; q < rows.length; ++q) {
        for (p = 0; p < rowHeight; ++p) {
            table.tBodi es[0].appendChild(rows[q][1][p])
        }
    }
    void 0;​
    Описание:This script is run from the overview tab and will resort your villages in order from closest to farthest from a given set of coordinates. From the overview tab, click the script from your quickbar and it will pop up a box asking to input the coordinates. It must be input with the | between the numbers (i.e. 500|500).
    _______________________
  • OD Calculator

    Код:
    javascript: var win = window.frames.length ? window.main : window;
    var doc = win.document;
    var J = win.$;
    var oda = 0;
    var odd = 0;
    var od = 0;
    
    function fetch(x) {
        x = J("table:has(th:contains('" + x + "')):last table  td:contains('Losses:')").parent().html();
        return (x == null) ? [] : x.match(/\d+/g);
    }
    var al = fetch('Attacker:');al = al.slice(1);
    var dl = fetch('Defender:');dl = dl.slice(1);
    switch (al.length) {
    case 9:
        oda = dl[0] * 4 + dl[1] * 5 + dl[2] * 1 + dl[3] * 1 + dl[4] * 5 
            + dl[5] * 23 + dl[6] * 4 + dl[7] * 200;
        odd = al[0] * 1 + al[1] * 2 + al[2] * 4 + al[3] * 2 + al[4] * 13 
            + al[5] * 15 + al[6] * 8 + al[7] * 200;
        break;
    case 10:
        oda = dl[0] * 4 + dl[1] * 5 + dl[2] * 1 + dl[3] * 1 + dl[4] * 5 
            + dl[5] * 23 + dl[6] * 4 + dl[7] * 12 + dl[8] * 200;
        odd = al[0] * 1 + al[1] * 2 + al[2] * 4 + al[3] * 2 + al[4] * 13 
            + al[5] * 15 + al[6] * 8 + al[7] * 10 + al[8] * 200;
        break;
    case 11:
        oda = dl[0] * 4 + dl[1] * 5 + dl[2] * 1 + dl[3] * 5 + dl[4] * 1 + dl[5] * 5 
            + dl[6] * 6 + dl[7] * 23 + dl[8] * 4 + dl[9] * 12 + dl[10] * 200;
        odd = al[0] * 1 + al[1] * 2 + al[2] * 4 + al[3] * 2 + al[4] * 2 + al[5] * 13 
            + al[6] * 12 + al[7] * 15 + al[8] * 8 + al[9] * 10 + al[10] * 200;
        break;
    case 12:
        oda = dl[0] * 4 + dl[1] * 5 + dl[2] * 1 + dl[3] * 5 + dl[4] * 1 + dl[5] * 5 
            + dl[6] * 6 + dl[7] * 23 + dl[8] * 4 + dl[9] * 12 + dl[10] * 40 + dl[11] * 200;
        odd = al[0] * 1 + al[1] * 2 + al[2] * 4 + al[3] * 2 + al[4] * 2 + al[5] * 13 
            + al[6] * 12 + al[7] * 15 + al[8] * 8 + al[9] * 10 + al[10] * 20 + al[11] * 200;
        break;
    }
    od = oda + odd;
    alert("Total OD  gained from battle: " + od + "\n\nODA: " + oda + "\n\nODD: " + odd);
    void(0);​
    Summary: Gives you total ODA and ODD from a report of your choice
 
Последнее редактирование модератором:

DeletedUser38163

Гость
Как пользоваться скриптом "Переназвать деревни по локации с континентом" ? а то он не работает

javascript: var doc = (window.frames.length > 0) ? window.main.document : document;
var eleCoords = $('#base_coords')[0];
if (eleCoords) {
rename(eleCoords.value.match(/(\d+)\|(\d+)/));
} else {
$('#combined_table th:contains("Village")').html(
'Target Village: <input type=text id="base_coords" value="50|50"/>');
}

function zeroPad(number, length) {
var n = number.toString();
while (n.length < length) {
n = "0" + n;
}
return n;
}

function SQ(x) {
return Math.pow(x, 2);
}

function V(z) {
return (z % 25100);
}

function D(s, d) {
return Math.round(Math.sqrt(SQ(V(d[1]) - V(s[1])) + SQ(V(d[2]) - V(s[2]))));
}

function K(x, y) {
return (Math.floor(y / 100) * 10) + Math.floor(x / 100);
}

function rename(base) {
var coord;
base[1] = parseInt(base[1], 10);
base[2] = parseInt(base[2], 10);
$('#combined_table span[id*=label_text_],
#combined_table input').each(function(index, element) {
if (element.id.match(/label_text_/i)) {
coord = element.innerHTML.match(/(\d+)\|(\d+)/);
} else if (element.id.match(/edit_input_/i)) {
var xx = parseInt(coord[1], 10);
var yy = parseInt(coord[2], 10);
var ns = (V(yy) < 50) ? 'N' : 'S';
var ew = (V(xx) < 50) ? 'W' : 'E';
var nm = 'K' + zeroPad(K(xx, yy), 2) + ' ' + ns + ew + ' '
+ zeroPad(D(coord, base), 3);
element.value = nm;
} else if (element.type == "button") {
element.click();
}
});
}
void(0);​
 

DeletedUser

Гость
Сортировщик атак скоро заработает? кто-то занят в переделывании этого скрипта под русские серверы?
 

DeletedUser

Гость
Скрипты в данной теме скопированы с американского форума, и впоследствии адаптированы (где надо было) под наши сервера.
 

DeletedUser

Гость
Вот здесь можно найти много разрешенных скриптов. При необходимости адаптации - пишите заявки.
 
Верх