auto hack improved grow
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
import { EXPLOITS } from "./constants.js"
|
||||
|
||||
/** @param {import(".").NS } ns */
|
||||
export async function main(ns) {
|
||||
// ns.disableLog('ALL');
|
||||
|
||||
// function scanServer(currentServer, previousServer = currentServer) {
|
||||
// let availableServers = ns.scan(currentServer);
|
||||
// let result = [];
|
||||
|
||||
// for (let i = 0; i < availableServers.length; ++i) {
|
||||
// let nextServer = availableServers[i];
|
||||
|
||||
// if (nextServer != currentServer && nextServer != previousServer) {
|
||||
// result.concat(scanServer(nextServer, currentServer));
|
||||
// }
|
||||
// }
|
||||
|
||||
// return [currentServer].concat(result);
|
||||
// }
|
||||
|
||||
function maxPortsToHack() {
|
||||
let maxPorts = 0;
|
||||
for (const exploit of EXPLOITS) {
|
||||
if (ns.fileExists(exploit.name)) ++maxPorts;
|
||||
}
|
||||
// ns.tryWritePort(2, `Max ports for hacking ${maxPorts}`);
|
||||
return maxPorts;
|
||||
}
|
||||
|
||||
function analyzeServer(server) {
|
||||
let requiredHacking = ns.getServerRequiredHackingLevel(server);
|
||||
let requiredPorts = ns.getServerNumPortsRequired(server);
|
||||
let currentHacking = ns.getHackingLevel();
|
||||
|
||||
return {
|
||||
"name": server,
|
||||
"rootAccess": ns.hasRootAccess(server),
|
||||
"requiredHacking": requiredHacking,
|
||||
"requiredPorts": requiredPorts,
|
||||
"nukeAvailable": (currentHacking >= requiredHacking && maxPortsToHack() >= requiredPorts),
|
||||
"currentMoney": ns.getServerMoneyAvailable(server),
|
||||
"maxMoney": ns.getServerMaxMoney(server),
|
||||
"currentSecurity": ns.getServerSecurityLevel(server),
|
||||
"minSecurity": ns.getServerMinSecurityLevel(server),
|
||||
};
|
||||
}
|
||||
|
||||
function scanServer(currentServer, previousServer = currentServer, network = []) {
|
||||
let availableServers = ns.scan(currentServer);
|
||||
network.push(analyzeServer(currentServer));
|
||||
|
||||
for (let i = 0; i < availableServers.length; ++i) {
|
||||
let nextServer = availableServers[i];
|
||||
|
||||
if (nextServer != currentServer && nextServer != previousServer) {
|
||||
scanServer(nextServer, currentServer, network);
|
||||
}
|
||||
}
|
||||
return network;
|
||||
}
|
||||
|
||||
let network = scanServer('home');
|
||||
ns.tprint(network[0])
|
||||
ns.as
|
||||
}
|
||||
Reference in New Issue
Block a user