您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Constants definition.
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/5427/21411/GOTA_Extender_Constants.js
var templates = { menuBtn: '<a id="extender-menu" class="navlink" data-menu="manager">' + '<span class="navlinkbox">' + '<span class="navlinkicon"></span>' + '<span class="vertcenter">' + '<span>Extender</span>' + '</span>' + '</span>' + '</a>', queueBtn: '<span class="btnwrap btnmed equipbtn queue" data-quantity="1">' + '<span class="btnedge">' + '<a class="btngold">Queue</a>' + '</span>' + '</span>', queue5Btn: '<span class="btnwrap btnmed equipbtn queue" data-quantity="5">' + '<span class="btnedge">' + '<a class="btngold">Queue x5</a>' + '</span>' + '</span>', queueUpgradeBtn: '<h5>Actions:</h5>' + '<div class="upgradeinfo">' + '<span id="upgradeQueue" class="btnwrap btnmed btnprice upgradeQueue">' + '<span class="btnedge">' + '<a class="btngold">Enqueue upgrade</a>' + '</span>' + '</span>' + '</div>', saveOptionsBtn: '<span id="saveOptions" class="btnwrap btnlg">' + '<span class="btnedge">' + '<a class="btngold">Save</a>' + '</span>' + '</span>', resetOptionsBtn: '<span id="resetOptions" class="btnwrap btnlg">' + '<span class="btnedge">' + '<a class="btngold">Reset</a>' + '</span>' + '</span>', observable: '<textarea id="observable" rows="1" style="width:99%; overflow:auto; display: none;"></textarea>', tabContent: '<div id="extenderTabContent" style="margin-top: 18px;"></div>', optionsHeader: '<h1 style="font-family:GoudyTrajan-Bold,Trajan,\'Trajan Pro\',Trajanbold;">Extender options</h1><hr />' + '<div id="extenderTabMenu" style="margin: 0 0 0;">' + '<div class="charactertabs"></div>' + '<div class="barbtmedge"></div>' + '</div>', tableSkeleton: '<div style="overflow-y: auto; height: 380px;">' + '<table id="queueTable" class="powertable">' + '<tbody>' + '<tr id="headerRow">' + '<th id="col4"><span class="colsort">QueueID</span></th>' + '<th id="col1"><span class="colsort">Type</span></th>' + '<th id="col1"><span class="colsort">Building</span></th>' + '<th id="col2"><span class="colsort">Name</span></th>' + '<th id="col3"><span class="colsort">Icon</span></th>' + '</tr>' + '</tbody>' + '</table>' + '</div>', bruteBtn: '<span id="bruteBtn" class="btnwrap btnmed" style="margin-top: 6px;" onclick="javascript:bruteForce()">' + '<span class="btnedge">' + '<a class="btngold">Brute!</a>' + '</span>' + '</span>', finishAllBtn: '<span class="btnwrap btnlg" onclick="finishAll()"><span class="btnedge"><a class="btngold">Finish All Buildings</a></span></span>', checkOption: function (id, name, val) { return '<a style="color:white;" id="' + id + '" class="extender-option checkbox ' + (val ? 'checked' : '') + '" onclick="check(this)">' + name + '</a>'; }, numberOption: function (id, label, val, min, max, step) { return '<label for="' + id + '">' + label + '</label>' + '<span id="' + id + '" ' + 'class="extender-option extender-number" ' + 'min="' + min + '" ' + 'max="' + max + '" ' + 'step="' + step + '"' + 'onclick="increment(this)">' + val + '</span>'; }, sellBulkBtn: function (itemId) { return '<span class="sellbulk">' + '<input type="number" id="sell_bulk_amount" placeholder="Amount">' + '<span id="do_sell_bulk" class="btnwrap btnsm" item-id="' + itemId + '">' + '<span class="btnedge">' + '<a class="btngold">Sell</a>' + '</span></span></span>'; }, optionsTab: function (id, name) { return '<span id="' + id + '" class="inventorytabwrap">' + '<span class="inventorytabedge">' + '<a class="inventorytab" style="padding: 1px 15px 0 15px; !important">' + name + '<em></em>' + '</a>' + '</span></span>'; }, tableRow: function (i, el) { return '<tr class="tableRow" style="cursor: pointer">' + '<td><span class="ranklist colsort">' + i + '</span></td>' + '<td><span class="ranklist colsort">' + el.type + '</span></td>' + '<td><span class="name colsort">' + el.activeBuildingPanel + '</span></td>' + '<td><span class="name colsort">' + el.name + '</span></td>' + '<td><span class="avatarimg"><img src="' + el.img + '"></span></td>' + '</tr>'; }, mainTab: function (o) { return '<div class="exrow">' + this.checkOption("toggledebugModes", "Debug mode", o.debugMode) + this.checkOption("toggleAutoCollect", "Enable auto-collecting", o.autoCollect) + '</div>' + '<div class="exrow">' + this.checkOption("toggleTooltips", "Tooltips on buildings", unsafeWindow.userContext.tooltipsEnabled) + '</div>' + '<div class="exrow">' + this.numberOption("autoCollectInterval", "Collect in (minutes): ", o.autoCollectInterval, 30, 360, 30) + this.finishAllBtn + '</div>'; }, queueTab: function (o) { return '<div class="exrow">' + this.numberOption("queueDelay", "Delay in (seconds):", o.queueDelay, 4, 20, 4) + this.checkOption("toggleSuperiorMaterials", "Use superior materials", o.superiorMaterials) + '</div>' + '<div class="exrow">' + this.numberOption("queueTimerInterval", "Interval in (minutes):", o.queueTimerInterval, 0, 240, 30) + '(0 = disabled)' + '</div><hr/>' + this.tableSkeleton; }, bruteTab: function (o) { return '<div class="exrow">' + this.numberOption("bruteWounds", "Brute until: ", o.bruteWounds, 0, 4, 1) + 'wound(s) (0 = disabled) and then: ' + '<span class="btnwrap btnlg" id="bruteSwitchOff" onclick="bruteSwitchToggle(this)"><span class="btnedge"><a class="btngold">' + (o.bruteSwitchOff ? 'switch off' : 'adjust') + '</a></span></span>' + '</div>'; }, }; var styles = { resetOptions: '#resetOptions { ' + 'bottom: 15px; ' + 'left: 66%; ' + 'margin-left: -40px; ' + 'padding: 0; ' + 'position: absolute; ' + 'width: 80px; ' + '}', saveOptions: '#saveOptions {' + 'bottom: 15px;' + 'left: 34%;' + 'margin-left: -40px; ' + 'padding: 0; ' + 'position: absolute; ' + 'width: 80px; ' + '}', extenderMenu: '#extender-menu .navlinkicon {' + 'background-image: url("http://disruptorbeamcdn-01.insnw.net/images/icons/newnav-menu.png?t=386c1688da2a"); ' + '}', extenderTabMenu: '#extenderTabMenu {' + 'background: url("http://disruptorbeamcdn-01.insnw.net/images/character/horzmenubg.png?t=074863387615") repeat-x scroll 0 bottom #000;' + 'height: 46px;' + 'margin: 0px 6px 0px;' + 'position: relative;' + 'text-align: center;' + 'width: auto;' + '}', exRow: '.exrow {' + 'margin: 8px 0 0;' + '}', exOption: '.extender-option {' + 'margin: 0 10px 0 8px;' + '}', exNumber: '.extender-number {' + 'background: url("http://disruptorbeamcdn-01.insnw.net/images/city/buildinglvl.png?t=7e85013c75ef") no-repeat scroll 0 0 transparent;' + 'color: #d6b97a;' + 'display: inline-block;' + 'font-family: GoudyTrajan-Bold,Trajan,"Trajan Pro",Trajanbold;' + 'font-weight: bold;' + 'height: 32px;' + 'line-height: 32px;' + 'right: 5px;' + 'text-align: center;' + 'top: 70px;' + 'width: 33px;' + 'cursor: pointer;' + '}', sellBulk: '.sellbulk {' + 'color: white;' + 'position: relative;' + '} \n' + '.sellbulk input {' + 'background-color: #000;' + 'border: 1px solid #444;' + 'border-radius: 5px;' + 'color: white;' + 'padding: 5px;' + 'width: 100px;' + '}', addAllStyles: function() { try { var elmHead, elmStyle; elmHead = document.getElementsByTagName('head')[0]; elmStyle = document.createElement('style'); elmStyle.type = 'text/css'; elmHead.appendChild(elmStyle); for (var style in this) { if (this.hasOwnProperty(style) && typeof this[style] == "string") { elmStyle.innerHTML ? elmStyle.innerHTML += "\n" + this[style] : elmStyle.innerHTML = this[style]; } } } catch (e) { warn("Error occured: " + e + ". Retrying... "); if (!document.styleSheets.length) document.createStyleSheet(); for (var cStyle in this) { if (this.hasOwnProperty(cStyle) && typeof this[cStyle] == "string") { document.styleSheets[0].cssText ? document.styleSheets[0].cssText += "\n" + this[cStyle] : document.styleSheets[0].cssText = this[cStyle]; } } } } };