Explore Script

Warring Factions Explore Script

目前为 2016-06-11 提交的版本,查看 最新版本

// ==UserScript==
// @name         Explore Script
// @version      0.3
// @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#";


// 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#";

window.setTimeout(main,50);
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;
xmlhttp.onreadystatechange=function()
{
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        perimeterScan = xmlhttp.responseText;
        var dom = document.createElement('html');
        dom.innerHtml = perimeterScan;
        dom.getElementsByTagName('table');
        
        var el = $( '<div></div>' );
        el.html(perimeterScan);
        $('table', el);
        document.getElementById('missionData').appendChild($('table', el)[1]);
    }
};
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,50);
            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" 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"  />';
            document.getElementById('nextPlanetButton').addEventListener('click', function() {
                jQuery('#target1').val(nextPlanetOption).trigger ('change');
                window.setTimeout(launchFleet,100);
            }, false);
            //selectNextPlanet(nextPlanetOption);
            //launchFleet();
            //autoSelectNextExplorer();

        }


    }
}

var nextPlanetOption;

function launchFleet(){
    getMission('launch');   //Launch Fleet
    window.setTimeout(autoSelectNextExplorer, 100);
}

function openStarMap(){
    var starMapLink;
    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);
    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 selectNextPlanet(nextPlanetOption){
    jQuery('#target1').val(nextPlanetOption).trigger ('change');
    window.setTimeout(launchFleet,100);
}

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,250);
    }

};

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址