Bitburner-Scripts/no-ports/recursive-run.js

30 lines
1.0 KiB
JavaScript
Raw Normal View History

2023-11-02 11:04:03 -03:00
/** @param {NS} ns */
export async function main(ns) {
let parent = ns.args[0]
let script = ns.args[1]
let selfScript = "recursive-run.js"
let servers = ns.scan()
//ns.tprint("INFO Scan of ", ns.getHostname(), ": ", servers)
for (const server of servers) {
if (server === parent) {
continue;
}
ns.exec(selfScript, server, 1, ns.getHostname(), script)
await ns.sleep(50)
let procs = ns.ps(server)
if (procs.length > 0) {
//ns.tprint("INFO Ram in use on ", server, ": ", ns.getServerUsedRam(server))
let ram = ns.getServerMaxRam(server) - ns.getServerUsedRam(server)
//ns.tprint("INFO Available ram on ", server, ": ", ram)
//ns.tprint("INFO Filename of running script: ", procs[0].filename)
}
if (ns.getServerRequiredHackingLevel(server) < ns.getHackingLevel()) {
// after thread args, first arg is the server it us running on, and then the cost of the hack script
ns.tprint("RUN Started hacking server: ", server)
ns.exec(script, server, 1, server, ns.getScriptRam("hack.js", server))
}
}
}