auto hack improved grow

This commit is contained in:
2023-09-09 02:05:43 +02:00
parent 7b14e98658
commit 435add26de
18 changed files with 8289 additions and 7480 deletions
+66
View File
@@ -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
}