diff --git a/servers/home/hack.ts b/servers/home/hack.ts new file mode 100644 index 0000000..82f8e91 --- /dev/null +++ b/servers/home/hack.ts @@ -0,0 +1,15 @@ +import {NS} from "NetscriptDefinitions"; +export async function main(ns: NS) { + const server: string = ns.args[0]; + const moneyThresh: number = ns.args[1]; + const securityThresh: number = ns.args[2]; + while (true) { + if (ns.getServerSecurityLevel(server) > securityThresh) { + await ns.weaken(server); + } else if (ns.getServerMoneyAvailable(server) < moneyThresh) { + await ns.grow(server); + } else { + await ns.hack(server); + } + } +} \ No newline at end of file diff --git a/servers/home/hackallservers.ts b/servers/home/hackallservers.ts new file mode 100644 index 0000000..a1cb37f --- /dev/null +++ b/servers/home/hackallservers.ts @@ -0,0 +1,14 @@ +import {NS} from "NetscriptDefinitions"; +import {recursiveScan} from "./utils"; +import {executeScriptOnServerFromAnother} from "./utils"; + +export async function main(ns: NS) { + let servers: string[] = recursiveScan(ns); + + for (const server of servers) { + let moneyThresh = ns.getServerMaxMoney(server) * 0.75; + let securityThresh = ns.getServerMinSecurityLevel(server) + 5; + let numThreads = ns.getServerMaxRam(server) / ns.getScriptRam("hack.js") + executeScriptOnServerFromAnother(ns, server, "hack.js", numThreads, [server, moneyThresh, securityThresh]) + } +} \ No newline at end of file diff --git a/servers/home/no-ports/hack.js b/servers/home/no-ports/hack.js deleted file mode 100644 index 63298ec..0000000 --- a/servers/home/no-ports/hack.js +++ /dev/null @@ -1,15 +0,0 @@ -/** @param {NS} ns */ -export async function main(ns) { - var target = ns.args[0] - var moneyThresh = ns.args[1] - var securityThresh = ns.args[2] - while (true) { - if (ns.getServerSecurityLevel(target) > securityThresh) { - await ns.weaken(target); - } else if (ns.getServerMoneyAvailable(target) < moneyThresh) { - await ns.grow(target); - } else { - await ns.hack(target); - } - } -} \ No newline at end of file diff --git a/servers/home/ramcost.ts b/servers/home/ramcost.ts index 1a54bd4..676df1b 100644 --- a/servers/home/ramcost.ts +++ b/servers/home/ramcost.ts @@ -2,5 +2,5 @@ import {NS} from "NetscriptDefinitions"; import {executeScriptOnServerFromAnother} from "./utils"; export async function main(ns: NS) { - executeScriptOnServerFromAnother(ns, "home", "servers/home/ramcost.ts", []) + executeScriptOnServerFromAnother(ns, "home", "servers/home/ramcost.ts", 1, []) } \ No newline at end of file diff --git a/servers/home/utils.ts b/servers/home/utils.ts index 72ac75e..0adc7e1 100644 --- a/servers/home/utils.ts +++ b/servers/home/utils.ts @@ -120,11 +120,12 @@ export function performFunctionIfCapable(ns: NS, server: string, func: CallableF * @param ns Global NS object * @param server The server to execute the script on * @param script The file path of the script to execute + * @param threads The number of threads to use * @param args The arguments to pass to the script */ -export function executeScriptOnServerFromAnother(ns: NS, server: string, script: string, args: any[]) { +export function executeScriptOnServerFromAnother(ns: NS, server: string, script: string, threads: number = 1, args: any[]) { ns.scp(script, server); - performFunctionIfCapable(ns, server, ns.exec, [script, server, ...args]) + performFunctionIfCapable(ns, server, ns.exec, [script, server, threads, ...args]) ns.atExit( () => { ns.rm(script, server);