您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a next planet button for probes which launches fleet to next planet. For www.war-facts.com .
当前为
// ==UserScript== // @name WF Explorer Next Planet Button // @namespace https://greasyfork.org/en/users/10321-nikitas // @description Adds a next planet button for probes which launches fleet to next planet. For www.war-facts.com . // @include http://*.war-facts.com/fleet.php* // @require https://code.jquery.com/jquery-2.1.4.min.js // @version 5 // @grant none // ==/UserScript== //Configuration Options: //Change this if you do not want Auto Launch when Next Button is Pressed, or if you don't want to Auto Select Next Explorer var AutoLaunch = true; var AutoSelectNextExplorer = true; // Change this if you wish to exclude Fleets whose names contain the excludeString from being auto Selected as next explorer. var useExcludeString = false; // Change this to what you would like to put into a fleet's name in order to exclude it from being auto selected. var excludeString = "#NotAuto#"; // Change this if you wish to auto Select Fleets as next explorer ONLY if their names contain the includeString. var useIncludeString = false; // Change this to what you would like to put into a fleet's name in order to include it into being auto selected. var includeString = "#Auto#"; //Script $(window).load(function() { window.setTimeout(runWholeScript,100); //Added some extra delay cause sometimes script didn't have time to load correctly function runWholeScript(){ var classificationNode = document.getElementById('fleetClass'); var isExplorer = document.evaluate("//text()[contains(.,'Explorer') or contains(.,'Sentry') or contains(.,'Probe Rush')]", classificationNode, null, XPathResult.BOOLEAN_TYPE, null).booleanValue; if (isExplorer){ var info = document.getElementById('navData').getElementsByTagName('div')[4]; var infoSpan = info.getElementsByTagName('span')[0]; // not containing world in the span. var isAtSystemEntrance = ! (document.evaluate("//text()[contains(.,'World:')]", infoSpan, null, XPathResult.BOOLEAN_TYPE, null).booleanValue); //alert("Is explorer = " + isExplorer); //alert("Is at system Entrance = " + isAtSystemEntrance); var currentPlanet = info.getElementsByTagName('a')[0].innerHTML; //alert(currentPlanet); var optionGroup = document.getElementById('target1'); optionGroup = optionGroup.getElementsByTagName('optgroup')[0]; optionGroup = optionGroup.getElementsByTagName('option'); var i = 0 , found = false, optionsLength = optionGroup.length; var nextPlanetOption, finishedSystem = false; //if PlanetLess system if (optionsLength === 0 ) { // alert("Planetless System"); found = true; finishedSystem = true; } else if (isAtSystemEntrance){ //if I am at system entrance // alert("At System Entrance"); found = true; nextPlanetOption = optionGroup[0].value; } // If I am at a planet, Find next planet through the local target option list while ( (i < optionsLength) && (found == false) ) { if (optionGroup[i].innerHTML == currentPlanet ){ found = true; if ( i == optionsLength -1 ){ finishedSystem = true; } else { nextPlanetOption = optionGroup[i+1].value; } } i++; } // alert("finished system = " + finishedSystem); // alert("next planet = " + nextPlanetOption); // alert("Reached finished System"); if (finishedSystem) { // alert("Inside finished System"); document.getElementById('missionData').innerHTML += '<input class = "greenbutton darkbutton" type="button" id="nextPlanetButton" value = "Done" onclick="openStarMap()" />'; document.getElementById('nextPlanetButton').addEventListener('click', openStarMap, false); } else { // alert("Inside NOT finished System"); document.getElementById('missionData').innerHTML += '<input class = "greenbutton darkbutton" type="button" id="nextPlanetButton" value = "Next Planet" onclick="selectNextPlanet()" />'; document.getElementById('nextPlanetButton').addEventListener('click', selectNextPlanet, false); } } function selectNextPlanet(){ jQuery('#target1').val(nextPlanetOption).trigger ('change'); if (AutoLaunch){ window.setTimeout(launchFleet,100); } } function openStarMap(){ var starMapLink; if (isAtSystemEntrance){ starMapLink = document.getElementById('navData').getElementsByTagName('div')[10].getElementsByTagName('a')[0].href; } else { starMapLink = document.getElementById('navData').getElementsByTagName('div')[11].getElementsByTagName('a')[0].href; } starMapLink = starMapLink.substring(19, starMapLink.length - 3 ); //Keep only the link, throw away the functions // mapWin is war-facts.com function to open javascript map mapWin(starMapLink); } function launchFleet(){ var launchButton = document.getElementById('mButton').getElementsByTagName('input')[0]; if (launchButton) { //So Button has been created getMission('launch'); //Launch Fleet autoSelectNextExplorer(); } else { window.setTimeout(launchFleet,100); } } function checkIfLaunched(){ var abortButton = document.getElementById('mButton').children[0]; if ( (abortButton) && (abortButton.value == "Abort Mission") ) { autoSelectNextExplorer(); }else { alert("Trying Again"); window.setTimeout(checkIfLaunched,250); } } function autoSelectNextExplorer(){ if (AutoSelectNextExplorer) { var explorerList = document.getElementById('fc_Explorer').children; var index = 0; var explorerListLength = explorerList.length; while (index < explorerListLength) { if (explorerList[index].children[0].style.color == "rgb(242, 242, 242)") { var link = explorerList[index].children[0].href; var name = explorerList[index].children[0].innerHTML; if (( ( !useIncludeString) || ( name.indexOf(includeString) > -1 ) ) //If not using include string or String is in name && ( ( !useExcludeString) || ( name.indexOf(excludeString) == -1 ) ) //If not using exclude string or String is NOT in name && ( link != window.location.href ) //Make sure we are not chosing ourselve as this fleet is still "white" ) { index = explorerListLength; //To make sure if load doesn't happen immediately it stops running through fleet list window.open(link, "_self"); } } index++; } } } } });