From 000e69a418695acb7a4fafae0eaa9e3df19debb0 Mon Sep 17 00:00:00 2001 From: Isaac Shoebottom Date: Fri, 3 Nov 2023 15:22:12 -0300 Subject: [PATCH] Add watcher and kill all scripts --- servers/home/hackallservers.ts | 1 + servers/home/killall.ts | 9 +++++++++ servers/home/watcher.ts | 18 ++++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 servers/home/killall.ts create mode 100644 servers/home/watcher.ts diff --git a/servers/home/hackallservers.ts b/servers/home/hackallservers.ts index a1cb37f..c24f504 100644 --- a/servers/home/hackallservers.ts +++ b/servers/home/hackallservers.ts @@ -9,6 +9,7 @@ export async function main(ns: NS) { let moneyThresh = ns.getServerMaxMoney(server) * 0.75; let securityThresh = ns.getServerMinSecurityLevel(server) + 5; let numThreads = ns.getServerMaxRam(server) / ns.getScriptRam("hack.js") + numThreads = Math.floor(numThreads); executeScriptOnServerFromAnother(ns, server, "hack.js", numThreads, [server, moneyThresh, securityThresh]) } } \ No newline at end of file diff --git a/servers/home/killall.ts b/servers/home/killall.ts new file mode 100644 index 0000000..a2bfae8 --- /dev/null +++ b/servers/home/killall.ts @@ -0,0 +1,9 @@ +import {NS} from "NetscriptDefinitions"; +import {recursiveScan} from "./utils"; + +export async function main(ns: NS) { + let servers: string[] = recursiveScan(ns) + for (const server of servers) { + ns.killall(server) + } +} \ No newline at end of file diff --git a/servers/home/watcher.ts b/servers/home/watcher.ts new file mode 100644 index 0000000..4fe1ba7 --- /dev/null +++ b/servers/home/watcher.ts @@ -0,0 +1,18 @@ +import {NS} from "NetscriptDefinitions"; +export async function main(ns: NS) { + let hackingLevel = ns.getHackingLevel(); + while (hackingLevel < 9999) { + ns.run("hackallservers.js"); + let seconds = 60 * 1000; // 1 minute + await ns.sleep(seconds) + + let oldHackingLevel = hackingLevel; + hackingLevel = ns.getHackingLevel(); + if(oldHackingLevel !== hackingLevel) { + ns.tprint(`Hacking level increased from ${oldHackingLevel} to ${hackingLevel}`); + ns.run("killall.js"); + await ns.sleep(1000) // 1 second + ns.run("hackallservers.js"); + } + } +} \ No newline at end of file