TW Big Inventory

This script, just make inventory biggest!

Bu betiği kurabilmeniz için Tampermonkey, Greasemonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği yüklemek için Tampermonkey gibi bir uzantı yüklemeniz gerekir.

Bu betiği kurabilmeniz için Tampermonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Userscripts gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği indirebilmeniz için ayrıca Tampermonkey gibi bir eklenti kurmanız gerekmektedir.

Bu komut dosyasını yüklemek için bir kullanıcı komut dosyası yöneticisi uzantısı yüklemeniz gerekecek.

(Zaten bir kullanıcı komut dosyası yöneticim var, kurmama izin verin!)

Bu stili yüklemek için Stylus gibi bir uzantı yüklemeniz gerekir.

Bu stili yüklemek için Stylus gibi bir uzantı kurmanız gerekir.

Bu stili yükleyebilmek için Stylus gibi bir uzantı yüklemeniz gerekir.

Bu stili yüklemek için bir kullanıcı stili yöneticisi uzantısı yüklemeniz gerekir.

Bu stili yüklemek için bir kullanıcı stili yöneticisi uzantısı kurmanız gerekir.

Bu stili yükleyebilmek için bir kullanıcı stili yöneticisi uzantısı yüklemeniz gerekir.

(Zateb bir user-style yöneticim var, yükleyeyim!)

// ==UserScript==
// @name TW Big Inventory
// @namespace TW_Jack
// @author Jackson
// @description This script, just make inventory biggest!
// @include https://*.the-west.*/game.php*
// @version 1.8
// @website https://liberdesign.eu
// @icon https://www.liberdesign.eu/wp-content/uploads/west/biginv.ico
// @license Free
// @grant none
// ==/UserScript==
(function(fn) {
    var script = document.createElement('script');
    script.setAttribute('type', 'application/javascript');
    script.textContent = '(' + fn + ')();';
    document.body.appendChild(script);
    document.body.removeChild(script);
})(function() {
    var bigInventor = {
        version: '1.7',
        author: 'Jackson',
        minGame: '2.03',
        maxGame: Game.version.toString(),
        website: 'https://greasyfork.org/ru/scripts/31626-tw-big-inventory',
        updateUrl: 'https://raw.githubusercontent.com/Vartanov/Tre-Pulsanti/master/agg.js',
        images: {}
    };
    Inventory.uid = "inventory";
    Inventory.size = 66;
    Inventory.sizeSearch = 55;
    Inventory.sizeCustom = 55;
    Inventory.width = 608;
    Inventory.availableCategories = ['new', 'belt', 'body', 'foot', 'head', 'neck', 'pants', 'animal', 'right_arm', 'left_arm', 'yield', 'upgradeable'];
    Inventory.defaultCategory = 'new';
    Inventory.latestSize = 66;
    Inventory.context = null;
    $("<link href='https://www.liberdesign.eu/wp-content/uploads/west/inv.css' rel='stylesheet' type='text/css'>").appendTo("head");
    var langs;
    langs = {
        it_IT: {
            lang_select: 'Lingua selezionata',
            language: 'Italiano',
            ApiGui: 'Questo script aumenta lo spazio nell inventario.',
            contact: 'Contatti',
            title: 'Big Inventory',
            update: 'Aggiorna',
            updateAvailable: 'Nuova versione dello script disponibile',
            name: 'Big Inventory',
            msgme: 'Mandami un messaggio in gioco',
            mailme: 'Mandami una mail',
            Doppioni : {
                tip : 'Mostra solo duplicati',
                upgradeable:'Migliorabile',
                noset : 'Non appartengono ai set',
                sellable : 'Vendibile',
                auctionable : 'Vendibile all asta',
                tipuse : 'Mostra solo consumabili',
                tiprecipe : 'Mostra solo ricette',
                tipsets : 'Mostra solo i set',
                tutteOpz : 'Tutto',
            }
        },
        en_US: {
            lang_select: 'Language selected',
            language: 'English',
            ApiGui: 'This script increases space in the inventory.',
            contact: 'Contact',
            title: 'Big Inventory',
            update: 'Update',
            updateAvailable: 'New version of the script are avialable.',
            name: 'Big Inventory',
            msgme: 'Message me in game',
            mailme: 'Send me a mail',
            Doppioni : {
                tip : 'Show only duplicates',
                upgradeable:'Upgradeables',
                noset : 'Without set items',
                sellable : 'Sellables',
                auctionable : 'Auctionables',
                tipuse : 'Show only useables',
                tiprecipe : 'Show only recipes',
                tipsets : 'Show only set items',
                tutteOpz : 'All',
            }
        },
        ru_RU: {
            lang_select: 'Выбранный язык',
            language: 'Русский',
            ApiGui: 'Этот скрипт, увеличивает пространство инвентаря!',
            contact: 'Контакты',
            title: 'Большой инвентарь',
            name: 'Большой инвентарь',
            update: 'Обновление',
            updateAvailable: 'Доступно обновление скрипта.',
            msgme: 'Напиши мне в игре',
            mailme: 'Почтовый ящик',
            Doppioni : {
                tip : 'Показывать только дубликаты',
                upgradeable:'Можно улучшить',
                noset : 'Не подлежащие наборам',
                sellable : 'Продаваемые',
                auctionable : 'Продаваемые на аукционе',
                tipuse : 'Показать только используемые',
                tiprecipe : 'Показать только рецепты',
                tipsets : 'Показывать только наборы',
                tutteOpz : 'Все',
            }
        },
        de_DE: {
            lang_select: 'Sprache',
            language: 'Deutsch',
            ApiGui: 'Dieses Skript vergrössert dein Inventar.',
            contact: 'Kontakt',
            title: 'Big Inventory',
            update: 'Update',
            updateAvailable: 'Für das Script ist eine neue Version erhältlich.',
            name: 'Big Inventory',
            msgme: 'Ingame Nachricht (Nur the-west.it)',
            mailme: 'Schicke mir eine E-Mail',
            Doppioni: {
                tip : 'Duplikate',
                upgradeable: 'Veredelbare',
                noset: 'Ohne Set-Items',
                sellable: 'Verkaufbare',
                auctionable: 'Auktionierbare',
                tipuse: 'Verbrauchbare',
                tiprecipe: 'Rezepte',
                tipsets: 'Set-Items',
                tutteOpz: 'Alle',
            }
        },
        ro_RO: {
            lang_select: 'Limba selectionata',
            language: 'Romana',
            ApiGui: 'Acest script, mareste spatiul in inventar',
            contact: 'Contacte',
            title: 'Big Inventory',
            name: 'Big Inventory',
            update: 'Actualizare',
            updateAvailable: 'Disponibila o noua actualizare.',
            msgme: 'Trimitemi mesaj in joc',
            mailme: 'Trimitemi un mail',
            Doppioni : {
                tip : 'Afișați numai duplicate',
                upgradeable:'Actualizabile',
                noset : 'Fără elemente din set',
                sellable : 'Sellables',
                auctionable : 'Auctionables',
                tipuse : 'Afișați numai utilizabile',
                tiprecipe : 'Afișați numai ricete',
                tipsets : 'Afișați numai seturi',
                tutteOpz : 'All',
            }
        }
    };
    var MPlang = langs.hasOwnProperty(Game.locale) ? langs[Game.locale] : langs.it_IT;
    var bigInventorApi = TheWestApi.register('bigInventor', MPlang.title, bigInventor.minGame, bigInventor.maxGame, bigInventor.author, bigInventor.website);
    bigInventorApi.setGui('<br><i>' + MPlang.lang_select + ': </i>' + MPlang.language + '<br><br>' + MPlang.ApiGui + '<br><br><i>' + MPlang.name + ' v' + bigInventor.version +
        '</i><br><br>' + MPlang.contact + ':</b><ul style="margin-left:15px;"><li>' + MPlang.msgme + '<a  style="margin-left:15px;" href="javascript:void(PlayerProfileWindow.open(542314));">Jackson</a>' + '</li><li>' + MPlang.mailme + '<a  style="margin-left:15px;" href="mailto:[email protected]">[email protected]</a>' + '</li></ul>');
    bigInventor.gui = {};
    var ICONE = {
        init: function () {
            try {
                EventHandler.signal("ICONE.init");
                var that = this;
                var timeout = 0;
                this.interval = setInterval(
                    function () {
                        var loading = false;
                        if (isDefined(Character.playerId) && Character.playerId === 0) {
                            loading = false;
                        } else if (!isDefined(ItemManager)) {
                            loading = false;
                        } else if (isDefined(ItemManager.initialized) && !ItemManager.initialized) {
                            loading = false;
                        } else if (isDefined(window.TWDB)) {
                            if (!window.TWDB.ClothCalc.ready) {
                                loading = false;
                                timeout++;
                                if (timeout > 20) {
                                    ErrorLog.log('Errore, caricamento TWDB non possibile ?');
                                    ICONE.isTWDBHere = true;
                                    loading = true;
                                }
                            } else {
                                ICONE.isTWDBHere = true;
                                loading = true;
                            }
                        } else {

                            loading = true;
                        }
                        if (loading) {
                            clearInterval(that.interval);
                            if (ICONE.scriptStorage === null) {
                                ICONE.scriptStorage = new Storage("local", "Storage.");
                            }
                            ICONE.ready = true;
                            EventHandler.signal('ICONE.ready');
                            ICONE.Inventario.create();
                        }

                    }, 500);
            } catch (e) {

                ErrorLog.log("Errore inizializzazione", e);
                ErrorLog.showLog();
                ICONE.ready = false;
            }
        },
        Inventario: {
            create: function () {
                ICONE.Inventario.attach();
            },
            attach: function () {
                EventHandler.listen("inventory_ready", ICONE.Inventario.addCheckBoxBag, "duplbag");
            },
            detach: function () {
                EventHandler.unlisten("inventory_ready", ICONE.Inventario.addCheckBoxBag, "duplbag");
                $('#bagFilterIsCollect', Inventory.DOM).remove();
            },
            cercaDuplicati: function (filtru) {

                var searchTxt = "";
                var searchVal = $('#inventory_search', Inventory.DOM).val();
                if (searchVal.lenght === 0 || Inventory.category != 'set') {
                    searchVal = ".*";
                } else {
                    searchTxt = (searchVal.lenght === 0) ? "" : " (" + searchVal + ")";
                }
                var res = Bag.search(searchVal);
                $('#inventory_search', Inventory.DOM).val("");
                var doppioni = [];
                var sell = 0;
                $.each(res, function (ind1, item) {
                    if (item.obj.type != 'yield' && ($.inArray(item.getType(), Inventory.getCategoryTypes(Inventory.category)) > -1 || Inventory.category == 'set' || Inventory.category == 'new')) {
                        var count = item.getCount();
                        var weared = Wear.carries(item.obj.item_base_id);
                        if (weared) {
                            count += 1;
                        }
                        if (count > 1) {
                            switch (filtru) {
                                case 'upgradeable':
                                    if (count < 3 || !item.obj.upgradeable) {
                                        item = null;
                                    }
                                    break;
                                case 'nosets':
                                    if (item.obj.set !== null) {
                                        item = null;
                                    }
                                    break;
                                case 'sellable':
                                    if (!item.obj.sellable) {
                                        item = null;
                                    }
                                    break;
                                case 'auctionable':
                                    if (!item.obj.auctionable) {
                                        item = null;
                                    }
                                    break;
                                default:
                                    break;
                            }
                            if (isDefined(item)) {
                                doppioni.push(item);
                                sell += (item.getSellPrice()) * (count - 1);
                            }
                        }
                    } else {
                    }
                });
                var lastCat = Inventory.category;
                Inventory.showSearchResult(doppioni || []);
                $('#sumsearch', Inventory.DOM).remove();
            },
            searchSpeciales: function (what) {
                $('#inventory_search', Inventory.DOM).val(what);
                var res = Bag.search(what);
                Inventory.showSearchResult(res || []);
                return res;
            },
            getDetSearchBox: function () {
                if (isDefined(west.storage.ItemSetManager)) {
                    var selSets = new west.gui.Selectbox();
                    selSets.setWidth(200);
                    $(selSets.elContent).css({
                        "max-height": "270px",
                        "width": "250px",
                        "overflow-y": 'auto'
                    });
                    ICONE.selAdded = [];
                    selSets.addItem('all', MPlang.Doppioni.tutteOpz);
                    selSets.addItem('upgradeable', MPlang.Doppioni.upgradeable);
                    selSets.addItem('nosets', MPlang.Doppioni.noset);
                    selSets.addItem('sellable', MPlang.Doppioni.sellable);
                    selSets.addItem('auctionable', MPlang.Doppioni.auctionable);
                    selSets.addListener(function (e) {
                        switch (e) {
                            case 'all':
                                $('#inventory_search', Inventory.DOM)
                                    .val("");

                                break;
                            default:

                                break;
                        }
                        ICONE.Inventario.cercaDuplicati(e);

                        return true;
                    });

                    return selSets;

                }
                // return selSets;
            },
            getSetNamesBox: function (setsCache) {

                if (isDefined(west.storage.ItemSetManager)) {

                    var selSets = new west.gui.Selectbox();
                    selSets.setWidth(200);

                    $(selSets.elContent).css({
                        "max-height": "270px",
                        "width": "250px",
                        "overflow-y": 'auto'
                    });

                    ICONE.selAdded = [];

                    selSets.addItem('setitems',
                        MPlang.Doppioni.tutteOpz);

                    $
                        .each(
                            setsCache,
                            function (ind2, item) {

                                var itemsSet = west.storage.ItemSetManager
                                    .get(item.obj.set);
                                if (!isDefined(ICONE.selAdded[itemsSet.name])) {
                                    ICONE.selAdded[itemsSet.name] = true;
                                    selSets.addItem(
                                        itemsSet.name,
                                        itemsSet.name);
                                }

                            });

                    selSets.addListener(function (e) {
                        ICONE.Inventario.searchSpeciales(e);
                        return true;
                    });
                    return selSets;
                }
                return selSets;
            },
            addCheckBoxBag: function (div) {
                if ($('#bagFilterIsCollect', Inventory.DOM).length === 0) {

                    var setsCache = Bag.search('setitems');

                    setsCache.sort(function (a, b) {
                        var x = west.storage.ItemSetManager
                            .get(a.obj.set).name;
                        var y = west.storage.ItemSetManager
                            .get(b.obj.set).name;

                        if (typeof x === 'string' && typeof x === 'string') {

                            return x.localeCompare(y);
                        }
                        return ((x < y) ? -1 : ((x > y) ? 1 : 0));
                    });

                    var selBox = ICONE.Inventario.getSetNamesBox(setsCache);
                    var spanD = $('<div id="bagFilterIsCollect"  ' + 'style="display: flex; position: inherit; float: right;"/>');
                    var duplicat = $("<span title='" + MPlang.Doppioni.tip + "' id='inventory_doublons'"
                        + '" class="filter_inventory filter_dopp hasMousePopup"'
                        + '" style="cursor: pointer; position: relative; background: url(https://www.liberdesign.eu/wp-content/uploads/west/small.png) no-repeat; background-position: -2px 0;" />'
                        + "</span>");
                    duplicat.click(function (e) {
                        $('#sumsearch').remove();
                        ICONE.Inventario.getDetSearchBox().show(e);
                    });
                    spanD.append(duplicat);
                    var utilizz = $('<span title="'
                        + MPlang.Doppioni.tipuse
                        + '" id="inventory_useables"'
                        + '" class="filter_inventory filter_utiliz hasMousePopup"'
                        + '" style="cursor: pointer; position: relative; background: url(https://www.liberdesign.eu/wp-content/uploads/west/small.png) no-repeat; background-position: -45px 0;">'
                        + "</span>");
                    utilizz.click(function () {
                        $('#sumsearch').remove();
                        ICONE.Inventario.searchSpeciales('useable');
                    });
                    spanD.append(utilizz);
                    var ricetta = $('<span title="'
                        + MPlang.Doppioni.tiprecipe
                        + '" id="inventory_recipe"'
                        + '" class="filter_inventory filter_ricet hasMousePopup"'
                        + '" style="position: relative; background: url(https://www.liberdesign.eu/wp-content/uploads/west/small.png) no-repeat; cursor: pointer; background-position: -88px 0;" >'
                        + '</span>');
                    ricetta.click(function () {
                        $('#sumsearch').remove();
                        ICONE.Inventario.searchSpeciales('recipe');
                    });
                    spanD.append(ricetta);
                    var naboru = $('<span title="'
                        + MPlang.Doppioni.tipsets
                        + '" id="inventory_sets"'
                        + '" class="filter_inventory filter_nabor hasMousePopup"'
                        + '" style="cursor: pointer; position: relative; background: url(https://www.liberdesign.eu/wp-content/uploads/west/small.png) no-repeat; background-position: -131px 0;" >'
                        + "</span>");
                    naboru.click(function (e) {
                        $('#sumsearch').remove();
                        selBox.show(e);
                    });
                    spanD.append(naboru);
                    $('.search_container').css('left', '35%').css('bottom', '10px');
                    $('.filters', Inventory.DOM).append(spanD);

                }

            }
        }
    };
    bigInventor.gui.init = function () {
        bigInventor.gui.makeButton = function (caption, callback) {
            return new west.gui.Button(caption, callback);
        };
    };
    bigInventor.Updater = function () {
        $.getScript(bigInventor.updateUrl, function () {
            if (aggiornaScript.bigInventor != bigInventor.version) {
                var updateMessage = new west.gui.Dialog(MPlang.update + ': ' + MPlang.name, '<span>' +
                    MPlang.updateAvailable + '<br><br><b>v' +
                    aggiornaScript.bigInventor + ':</b><br>' +
                    aggiornaScript.bigInventorNew + '</span>', west.gui.Dialog.SYS_WARNING).addButton(MPlang.update, function () {
                    updateMessage.hide();
                    location.href = bigInventor.website + '/code.user.js';
                }).addButton('cancel').show();
            }
        });
    };
    function Storage(type, namespace) {
        var object = this;
        if (typeof (type) != "string")
            type = "session";
        switch (type) {
            case "local": {
                object.storage = localStorage;
            }
                break;
            case "session": {
                object.storage = sessionStorage;
            }
                break;
            default: {
                object.storage = sessionStorage;
            }
                break;
        }
        if (!namespace || (typeof (namespace) != "string" && typeof (namespace) != "number"))
            namespace = "ScriptStorage";

        object.namespace = [ namespace, "." ].join("");

        object.setItem = function(key, value) {
            try {
                object.storage.setItem(escape( [ object.namespace,
                    key ].join("")), JSON.stringify(value));
            } catch (e) {
            }
        };
        object.getItem = function(key, defaultValue) {
            try {
                var value = object.storage.getItem(escape( [
                    object.namespace, key ].join("")));
                if (value)
                    return eval(value);
                else
                    return defaultValue;
            } catch (e) {
                return defaultValue;
            }
        };
        object.removeItem = function(key) {
            try {
                object.storage.removeItem(escape(collection.craftfilterMarket[object.namespace, key].join("")));
            } catch (e) {
            }
        };
        object.keys = function() {
            var array = [];
            var indJack = 0;
            do {
                try {
                    var key = unescape(object.storage.key(indJack++));
                    if (key.indexOf(object.namespace) == 0
                        && object.storage.getItem(key))
                        array.push(key
                            .slice(object.namespace.length));
                } catch (e) {
                    break;
                }
            } while (true);
            return array;
        };
    }
    $(document).ready(function () {
        try {
            bigInventor.gui.init();
            ICONE.init();
            setTimeout(bigInventor.Updater, 5000);
        } catch (e) {
            console.log(e.stack);
        }
    });
});