您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Автоматический запуск постройки нескольких подразделений одного типа, кроме офисов и гос.предприятий
// ==UserScript== // @name iks: virtonomica оптовое строительство // @namespace virtonomica // @description Автоматический запуск постройки нескольких подразделений одного типа, кроме офисов и гос.предприятий // @include http*://*virtonomic*.*/*/main/unit/create/* // @icon https://www.google.com/s2/favicons?domain=virtonomica.ru // @version 1.1.7 // @grant none // ==/UserScript== /**************************************************/ var run = function () { const MAXUNITS=1000; let isCreateSeriesBinded = false; let seriesCount = 1; let seriesCreated = 0; let isCreateExec = false; let buy_unit; let indexouc = document.location.href.indexOf("/unit/create"); let companyId = document.location.href.substring(indexouc + 13); let jn = companyId.match(/\d+/g); companyId = jn.join('').trim(); console.log(companyId); let errors = { '-100': 'Ошибка при создании предприятия. Возможно, у вас не хватило средств на постройку, покупку и внедрение технологии, или вы ввели некорректные данные.', '-10': 'Ошибка при создании предприятия. У компании нет офиса в регионе, где создаётся предприятие.', '-20': 'Ошибка при создании предприятия. Компания уже имеет офис в выбранном регионе.', '-30': 'Ошибка при создании предприятия. У компании недостаточно средств для покупки земли.', '-40': 'Ошибка при создании предприятия. У компании недостаточно средств для покупки технологии.', '-50': 'Ошибка при создании предприятия. У компании недостаточно средств для покупки месторождения.', '-60': 'Ошибка при создании предприятия. У компании недостаточно средств для въезда в новое помещение.', '-70': 'Ошибка при создании предприятия. В выбранном городе нет свободных площадей для создания выбранного предприятия. Возможно, вас опередили другие игроки.', '-80': 'Ошибка при создании предприятия. Выбранное месторождение недоступно. Возможно, вас опередили другие игроки.', '-90': 'Ошибка при создании предприятия. Недостаточно денег', }; buy_unit = function (args, token) { if (seriesCreated < seriesCount && isCreateExec) { ApiConnection.post({ base_url: '/api/', url: '?action=company/build&app=adapter_vrt', token: token, id: companyId, kind: UnitCreateWizard.get('unittype').kind, name: UnitCreateWizard.name, args: args }).then(function (res) { if (parseInt(res) > 0) { seriesCreated++; console.log('created: ' + seriesCreated); buy_unit(args, token); } else { $('.alert_slots .alert').text(errors[res]); $('.alert_slots').show(); isCreateExec = false; $('button#createSeriesButton').show(); $('button#cancelSeriesButton').hide(); } }); } else { isCreateExec = false; $('button#createSeriesButton').show(); $('button#cancelSeriesButton').hide(); } $("div#createSeriesInfo").html('<span class="margin-5-left"><div class="col-sm-12 unit-name">Создано: ' + seriesCreated + ' </div> </span>'); } let buy_units = function (args) { $('button#createSeriesButton').hide(); $('button#cancelSeriesButton').show(); isCreateExec = true; seriesCreated = 0; ApiConnection.get({ base_url: '/api/', url: '?action=token&app=virtonomica', }).then(function (res) { console.log('token: ' + res); buy_unit(args, res); }); }; $('div#mainContent').bind('DOMSubtreeModified', function () { let but = $('div#confirm-modal>div[class^="modal-dialog"]>div[class="modal-content"]>div[class="modal-footer"]>button[class^="btn btn-success"]'); if (but.length == 1) { if (!isCreateSeriesBinded) { isCreateSeriesBinded = true; let modalBody=$('div#confirm-modal>div[class^="modal-dialog"]>div[class="modal-content"]>div[class="modal-body"]'); let kind = UnitCreateWizard.get('unittype').kind; if (['sawmill', 'fishingbase', 'farm', 'orchard', 'villa', 'mine', 'office'].indexOf(UnitCreateWizard.get('unittype').kind) != -1) { modalBody.append('<div class="row"><div class="col-sm-12 unit-name">Создание серии недопустимо</div></div>'); return; } modalBody.append('<div class="row"><div class="col-sm-12 unit-name"><span class="margin-5-left">Количество: </span><span class="pull-right width60"><input id="seriesCountInput" type="number" min="1" max="'+MAXUNITS+'" class="form-control" value="' + seriesCount + '"/></span></div></div>'); modalBody.append('<div class="row" id="createSeriesInfo"></div>'); modalBody.append('<div class="row"><div class="col-sm-12 unit-name"><span class="pull-right width60"><button id="createSeriesButton" class="btn btn-sm btn-circle">Создание серии</button><button id="cancelSeriesButton" class="btn btn-sm btn-circle">Отмена серии</button></span></div></div>'); $("button#createSeriesButton").on("click", function () { buy_units({ produce_id: UnitCreateWizard.get('produce') ? UnitCreateWizard.get('produce').id : 0, product_id: UnitCreateWizard.get('product') ? UnitCreateWizard.get('product').id : 0, square: UnitCreateWizard.get('size').square ? UnitCreateWizard.get('size').square : 0, city_id: UnitCreateWizard.get('city').id, size: UnitCreateWizard.get('size').size ? UnitCreateWizard.get('size').size : 0, district_id: UnitCreateWizard.get('district') ? UnitCreateWizard.get('district').id : 0 }); }); $("button#cancelSeriesButton").on("click", function () { isCreateExec = false; $('button#createSeriesButton').show(); $('button#cancelSeriesButton').hide(); }); $("button#cancelSeriesButton").hide(); $("input#seriesCountInput").change(function () { seriesCount = parseInt($("input#seriesCountInput").val()); if(seriesCount>MAXUNITS)seriesCount=MAXUNITS; else if(seriesCount<1)seriesCount=1; $("input#seriesCountInput").val(seriesCount); }); } } else { isCreateSeriesBinded = false; seriesCount = 1; seriesCreated = 0; isCreateExec = false; } }); } if (window.top == window && (window.location.href.indexOf('main/unit/create') >= 0)) { var script = document.createElement('script'); script.textContent = ' (' + run.toString() + ')();'; document.documentElement.appendChild(script); }