您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Warring Factions Explore Script
- // ==UserScript==
- // @name Explore Script
- // @version 0.4
- // @description Warring Factions Explore Script
- // @author Kevin Schlosser
- // @match http://*.war-facts.com/fleet.php*
- // @match http://*.war-facts.com/fleet/*
- // @require https://code.jquery.com/jquery-2.1.4.min.js
- // @grant none
- // @namespace https://gf.qytechs.cn/users/14655
- // ==/UserScript==
- //Configuration Options:
- // 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#";
- // How many milliseconds to wait between requests
- var timeout = 500;
- // 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#";
- var explorerRegex = /Explorer/g;
- var isExplorer = explorerRegex.test(document.getElementById('fleetClass').innerText);
- var base = window.location.href;
- var fleetIdRegex = /fleet.php.*fleet=(\d+)|fleet\/(\d+)/g;
- var match = fleetIdRegex.exec(base);
- var fleetNumber = match[1] === undefined ? match[2] : match[1];
- var xmlhttp = new XMLHttpRequest();
- var perimeterScan, hasWormhole, hasColony;
- xmlhttp.onreadystatechange=function()
- {
- if (xmlhttp.readyState==4 && xmlhttp.status==200)
- {
- perimeterScanHtml = xmlhttp.responseText;
- var dom = document.createElement('html');
- dom.innerHtml = perimeterScan;
- dom.getElementsByTagName('table');
- var el = $( '<div></div>' );
- el.html(perimeterScanHtml);
- var perimiterScan = $('table', el)[1];
- document.getElementById('missionData').appendChild(perimiterScan);
- hasWormhole = checkWH(perimiterScan.rows);
- hasColony = checkColony();
- if (!hasWormhole && !hasColony) {
- window.setTimeout(main,timeout);
- }
- }
- };
- if (isExplorer) {
- xmlhttp.open("GET", 'http://www.war-facts.com/extras/scan.php?fleet='+fleetNumber, true);
- xmlhttp.send();
- }
- function main() {
- 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');
- if (optionGroup === null) {
- window.setTimeout(main,timeout);
- return;
- }
- 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++;
- }
- if (finishedSystem) {
- // alert("Inside finished System");
- document.getElementById('missionData').innerHTML += '<input class = "greenbutton darkbutton" type="button" id="nextPlanetButton" value = "Done" />';
- 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" />';
- document.getElementById('nextPlanetButton').addEventListener('click', function() {
- jQuery('#target1').val(nextPlanetOption).trigger ('change');
- //window.setTimeout(launchFleet,timeout);
- }, false);
- selectNextPlanet(nextPlanetOption);
- //launchFleet();
- //autoSelectNextExplorer();
- }
- }
- }
- var nextPlanetOption;
- function checkWH(rows){
- for (var x = 1; x < rows.length; x++) {
- var cells = rows[x].cells;
- for (var y = 0; y < cells.length; y++) {
- if (cells[y].innerText.indexOf('Wormhole!') != -1) {
- return true;
- }
- }
- }
- return false;
- }
- function checkColony(){
- var links = $('a', document.getElementById('navData'));
- for (var x = 0; x < links.length; x++) {
- if (links[x].innerText.indexOf('(view colonies)') != -1) {
- return true;
- }
- }
- return false;
- }
- function launchFleet() {
- getMission('launch'); //Launch Fleet
- window.setTimeout(autoSelectNextExplorer, 100);
- }
- function openStarMap(){
- var info = document.getElementById('navData').getElementsByTagName('div')[4];
- var infoSpan = info.getElementsByTagName('span')[0];
- //var isAtSystemEntrance = ! (document.evaluate("//text()[contains(.,'World:')]", infoSpan, null, XPathResult.BOOLEAN_TYPE, null).booleanValue);
- var links = document.getElementById('navData').getElementsByTagName('a');
- var starMapTgt;
- var globalRegex = /\d+, \d+, \d+ global/g;
- for(var x = 0; x < links.length; x++) {
- var text = links[x].innerText;
- if (globalRegex.exec(text)) {
- starMapTgt = links[x].href;
- break;
- }
- }
- starMapTgt = starMapTgt.substring(19, starMapTgt.length - 3 ); //Keep only the link, throw away the functions
- // mapWin is war-facts.com function to open javascript map
- mapWin(starMapTgt);
- }
- function selectNextPlanet(nextPlanetOption){
- jQuery('#target1').val(nextPlanetOption).trigger ('change');
- window.setTimeout(launchFleet,timeout);
- }
- function autoSelectNextExplorer(){
- var explorerList = document.getElementById('fc_Explorer').children;
- var index = 0;
- var explorerListLength = explorerList.length;
- while (index < explorerListLength) {
- // alert("Index = " +index);
- if (explorerList[index].children[0].style.color == "rgb(204, 204, 204)") {
- var link = explorerList[index].children[0].href;
- var fleet_with_id = link.substr(link.indexOf("fleet="));
- var name = explorerList[index].children[0].innerHTML;
- var current_window = window.location.href;
- // alert("Fleet with name " + name +" and with id " + fleet_with_id);
- 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
- && ( current_window.indexOf(fleet_with_id) == -1 )//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++;
- }
- }
- // Replace the site's getMission function, so that when launch is pressed, it autoSelectsNextExplorer
- var oldgetMission = window.getMission;
- window.getMission = function getMission(action, dType) {
- var executed = new oldgetMission(action, dType);
- if (action == 'launch'){
- 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;
- window.setTimeout(autoSelectNextExplorer,timeout);
- }
- };
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址