[Engedélyezett] Faluátnevező(termelés nézet)

Státusz
Nem lehet hozzászólni.

DeletedUser19087

Vendég
Üdv,

A scriptet termelés nézetben kell futtatni. Futtatás előtt lehet rendezni a falvakat pont, raktár, kereskedők, tanya szerint. Így pl. pont szerint csökkenő sorrendben lehet beszámozni a falvakat, a még könnyebb áttekinthetőség érdekében.
Beállítása annyiból áll, hogy a fenti kódot egy gyors gombba illesztjük, majd rákattintunk a gombra. Ha jó helyen vagyunk, akkor felugrik egy ablak, ahová be kell írni a mintát.

2016.04.10.
1.5
A javítva a túl gyakori parancskiadásból eredő hiba.

2014.04.27.
1.3-as verzió. A script már megadott koordinátákból véletlenszerűen kiválasztva is tud falukat átnevezni.

2014.03.16.
1.1.1-es verzióban a távolság szerinti átnevezés módosítva lett.

2014.03.03.
1.1-es verzió. Script kiegészítve azzal, hogy egy koordinátától való távolság alapján nevezze át a falukat.

A beírható faluk nevéről
A script támogat néhány speciális szöveget, amivel például sorszámot lehet előidézni, ez pedig kerülhet a a néven belül bárhová.

Sorszámozás
a sorszámra két opció van: lehet úgy sorszámozni, hogy 1, 2, 3, 4, ..., 10, 11, ..., 100 alakú számok lesznek
ehhez ezt a szöveget kell beírni: {SORSZÁM}
vagy lehet úgy formázni, hogy mindig egy megadott minimum számjegy legyen, tehát például 001, 002, 003, ..., 010, 011, ..., 100
ehhez ezt kell beírni: {SORSZÁM:x}, ahol x helyére egy tetszőleges egész szám kerülhet (maximum 32 karakter lehet egy falu neve!)


A faluk adott nevét is meg lehet tartani. Ehhez a {MOSTANI} szöveget kell alkalmazni. (Például akkor hasznos, ha van 50 falu, mindegyik egyedi névvel, de sorszámozni szeretnéd őket [példa lent])


Ezen kívül lehetőség van tetszőleges hosszúságú véletlenszerű szöveg létrehozására is, a {VÉLETLEN:x} formával, ahol x egy olyan egész szám, amely a karakterek számát jelöli. A szöveg az alábbi karakterekből állhat: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789äöüÄÖÜßöÖüÜóÓőŐúÚéÉáÁűŰíÍ


Kiegészítés után a script már arra is képes, hogy egy adott koordinátától való távolság alapján nevezze el a falukat.
Ehhez ezt kell használni: {TÁVOLSÁG:xxx|yyy,a,b}, ahol xxx|yyy a koordinátát jelöli, míg a egy olyan 0-9 közé eső egész számot, ami meghatározza, hogy minimum hány egész számjegy legyen, míg b a tizedespont utáni számjegyek számát jelenti (szintén 0 és 9 közötti szám). Például: 0036.1232 vagy 038.0000

Ha megadott koordinátákból véletlenszerűen válogatva szeretnénk átnevezni a falukat, akkor:
{KOORDINÁTÁK:xxx|yyy xx2|yy2 xx3|yy3}
A koordinátákat szóközzel elválasztva kell megadni tetszőleges számban.

Ezek a speciális jelölések bárhová kerülhetnek a szövegen belül, de egymásba nem! A jelölések közé bármilyen, tetszőleges szöveg kerülhet (nyilván csak az engedélyezett karakterek).

Természetesen a speciális jelöléseken túl bármilyen szöveget be lehet írni a scriptnek.

Néhány példa a könnyebb érthetőség kedvéért
  1. Az alábbi falunévhez: Iron xxxx. faluja, ezt kell megadni a felugró ablakba (xxxx itt most azt jelenti, hogy minimum 4 számjegy lesz):
    Iron {SORSZÁM:4}. faluja
    Eredményül ez lesz: Iron 0001. faluja; Iron 0002. faluja; ...; Iron 0010. faluja
  2. A mostani falunevek sorszámozása (legyen 3 falu ilyen nevekkel: Iron faluja; Falum; Nem a tied!)
    {SORSZÁM:3} # {MOSTANI}
    Eredményül ezt kapjuk: 001 # Iron faluja; 002# Falum; 003 # Nem a tied!
  3. Ahhoz, hogy a faluk neve 5 véletlen karakterből álljon, ezt kell megadni:
    {VÉLETLEN:5}
    Eredményül egy nagy valószínűség szerint teljesen értelmetlen szöveget fogunk kapni.
  4. Ha az 500|500 koordinátától való távolság alapján kell a falukat átnevezni, úgy, hogy 4 számjegy legyen a tizedespont előtt (tehát minimum 4 jegyű legyen az egész rész), és 6 számjegy legyen a tizedespont után:
    {TÁVOLSÁG:500|500,4,6}
  5. Ha adott ez a négy falu: 271|732, 272|731, 274|730, 273|729, és a faluinkat erre a 4 koordinátára szeretnénk nevezni, akkor ahhoz ezt kell beírni: {KOORDINÁTÁK:271|732 272|731 274|730 273|729}
    Eredményül a fent írt koordinátákat kapjuk valamilyen sorrendben. Ha több, mint 4 falu van, akkor természetesen egy koordináta többször is szerepelhet.
  6. Ha egy szolid, x. falu nevet szeretnénk, akkor írjuk be ezt:
    {SORSZÁM}. falu
    Eredmény: 1. falu; 2. falu; ...; 10. falu; ...; 100. falu
  7. Ha pedig csak simán úgy szeretnénk átnevezni a falut, hogy Falu, akkor nemes egyszerűséggel adjuk meg a scriptnek, hogy Falu

Kód beillesztése:
javascript:
var fejleszto="IronFist";
var verzio="1.5";

(function () {
    var delay = 75;
    var mainCoords = [];
    var mainCoordsSecondArray = [];

 
    Array.prototype.remove = function (from, to) {
        var rest = this.slice((to || from) + 1 || this.length);
        this.length = from < 0 ? this.length + from : from;

        return this.push.apply(this, rest);
    };

 
    function formatNumberLength(number, length) {
        var ret = "" + number;

        while (ret.length < length) {
            ret = "0" + ret;
        }

        return ret;
    }

 
    function createRandomString(length) {
        var ret = "";
        var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789äöüÄÖÜßöÖüÜóÓőŐúÚéÉáÁűŰíÍ";

        while (ret.length < length) {
            ret = ret + possible.charAt(Math.floor(Math.random() * possible.length));
        }

        return ret;
    }

 
    function sq(x) {
        return x * x;
    }

 
    function calculateDistance(p1, p2) {
        return Math.sqrt(Math.abs((sq(p2.x - p1.x) + sq(p2.y - p1.y))));
    }

 
    function getCurrentCoord() {
        var text = $('#menu_row2').children('td').has('b.nowrap').text().split(" ");
        var coord = text[0].replace("(", "").replace(")", "").split("|");

        return {
            x: parseInt(coord[0], 10),
            y: parseInt(coord[1], 10)
        };
    }

 
    function createFormattedDistance(coord1, coord2, digits1, digits2) {
        var distance = calculateDistance(coord1, coord2);
        var integer = Math.floor(distance);
        var afterPoint = distance - integer;

        afterPoint = afterPoint.toFixed(digits2);
        afterPoint = afterPoint.substr(1);

        return formatNumberLength(integer, digits1) + afterPoint;
    }

 
    function randomCoord() {
        var index = Math.floor(Math.random() * mainCoords.length);
        var coord = mainCoords[index];

        mainCoords.remove(index);

        return coord;
    }

 
    function createName(name, key, val) {
        key = key + 1;
        name = name.replace(/\{SORSZÁM\}/, key);
        name = name.replace(/\{SORSZÁM\:(\d)\}/, function (match, m1) {
            return formatNumberLength(key, m1);
        });
        name = name.replace(/\{MOSTANI\}/, $(val).prev('a').children('span').first().attr("data-text"));
        name = name.replace(/\{VÉLETLEN\:(\d)\}/, function (match, m1) {
            return createRandomString(m1);
        });
        name = name.replace(/\{TÁVOLSÁG:(\d{1,3})\|(\d{1,3})\,(\d)\,(\d)\}/, function (match, m1, m2, m3, m4) {
            var coord = $(val).prev('a').children('span').first().text().match(/\((\d+)\|(\d+)\)/);
            return createFormattedDistance({ x: coord[1], y: coord[2] }, { x: m1, y: m2 }, m3, m4);
        });
        name = name.replace(/\{KOORDINÁTA\}/, function () {
            if (mainCoords.length == 0) {
                mainCoords = mainCoords.concat(mainCoordsSecondArray);
            }

            return randomCoord();
        });

        return name;
    }

 
    function doIt(name) {
        var element = [];

        name = name.replace(/\{KOORDINÁTA:(.*?)\}/, function (match, m1) {
            mainCoords = m1.split(" ");
            mainCoordsSecondArray = mainCoordsSecondArray.concat(mainCoords);

            return "{KOORDINÁTA}";
        });

        $('table#production_table').find('tr').not(':first').find('td:eq(1)').find('a.rename-icon').each(function (key, val) {
            setTimeout(function() {
                $(val).trigger("click");

                element = $(val).parent().next('span').children('input');

                element.first().val(createName(name, key, val));
                element.last().trigger("click");
            }, delay * key);
        });
    }

 
    function __() {
        if (typeof fejleszto != 'string' || fejleszto != String.fromCharCode(73, 114, 111, 110, 70, 105, 115, 116)) {
            alert(String.fromCharCode(65, 32, 102, 101, 106, 108, 101, 115, 122, 116, 337, 116, 32, 110, 101, 32, 110, 233, 118, 116, 101, 108, 101, 110, 237, 116, 115, 100, 32, 101, 108, 33));
            $('body').empty();
            return false;
        }

        var name = prompt("Mire nevezzem át?", "");

        doIt(name);
    }

    if (document.URL.match("screen=overview_villages") && $("td#content_value td.selected a").attr("href").match("mode=prod")) {
        __();
    } else {
        alert("A script az Áttekintéseknél működik, a termelés nézetnél. Átirányítás...");
        self.location = game_data.link_base_pure.replace(/screen\=\w*/i, "screen=overview_villages&mode=prod");
    }
})();void(0);
 
Utoljára egy moderátor szerkesztette:

DeletedUser16510

Vendég
Köszönjük segítséged, hálánk jeléül a játékosfiókodban némi prémium pontot írtunk jóvá.
 
Státusz
Nem lehet hozzászólni.
Fent