Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /** @param {NS} ns */
- export async function main(ns, target, servers, hackThreads, counterHackThreads, growThreads, counterGrowThreads, delay) {
- const hackTime = ns.getHackTime(target);
- const weakenTime = hackTime * 4;
- const growTime = hackTime * 3.2;
- const hackScript = '/Scripts/hack.js';
- const growScript = '/Scripts/grow.js';
- const weakenScript = '/Scripts/weaken.js';
- const counterHackDelay = 0;
- const counterGrowDelay = 2 * delay;
- const growDelay = (weakenTime - growTime + (1 * delay));
- const hackDelay = (weakenTime - hackTime - (1 * delay));
- await ns.sleep(1 * delay)
- // First, allocate counterHackThreads
- await executeScripts(weakenScript, counterHackThreads, servers, target, counterHackDelay);
- // Then, allocate counterGrowThreads
- await executeScripts(weakenScript, counterGrowThreads, servers, target, counterGrowDelay);
- // Then, allocate growThreads
- await executeScripts(growScript, growThreads, servers, target, growDelay);
- // Finally, allocate hackThreads
- await executeScripts(hackScript, hackThreads, servers, target, hackDelay);
- await ns.sleep(1 * delay)
- async function executeScripts(script, numThreads, servers, target, scriptDelay) {
- let executed = false; // Flag to track if the thread was executed
- for (const server of servers) {
- if (ns.getScriptRam(script) * numThreads <= (ns.getServerMaxRam(server) - ns.getServerUsedRam(server))) {
- if (numThreads > 0) {
- ns.exec(script, server, numThreads, target, scriptDelay);
- }
- executed = true;
- break; // Move to t}he next thread after execution
- }
- if (!executed) {
- ns.tprint(`No available server with enough RAM for thread ${i + 1}`);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment