JRLanger

hwgwLoopManager.js

Oct 16th, 2023
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /** @param {NS} ns */
  2.  
  3. export async function main(ns, target, servers, hackThreads, counterHackThreads, growThreads, counterGrowThreads, delay) {
  4.  
  5.   const hackTime = ns.getHackTime(target);
  6.   const weakenTime = hackTime * 4;
  7.   const growTime = hackTime * 3.2;
  8.  
  9.   const hackScript = '/Scripts/hack.js';
  10.   const growScript = '/Scripts/grow.js';
  11.   const weakenScript = '/Scripts/weaken.js';
  12.  
  13.   const counterHackDelay = 0;
  14.   const counterGrowDelay = 2 * delay;
  15.   const growDelay = (weakenTime - growTime + (1 * delay));
  16.   const hackDelay = (weakenTime - hackTime - (1 * delay));
  17.  
  18.   await ns.sleep(1 * delay)
  19.   // First, allocate counterHackThreads
  20.   await executeScripts(weakenScript, counterHackThreads, servers, target, counterHackDelay);
  21.  
  22.   // Then, allocate counterGrowThreads
  23.   await executeScripts(weakenScript, counterGrowThreads, servers, target, counterGrowDelay);
  24.  
  25.   // Then, allocate growThreads
  26.   await executeScripts(growScript, growThreads, servers, target, growDelay);
  27.  
  28.   // Finally, allocate hackThreads
  29.   await executeScripts(hackScript, hackThreads, servers, target, hackDelay);
  30.   await ns.sleep(1 * delay)
  31.  
  32.  
  33.   async function executeScripts(script, numThreads, servers, target, scriptDelay) {
  34.  
  35.     let executed = false; // Flag to track if the thread was executed
  36.     for (const server of servers) {
  37.       if (ns.getScriptRam(script) * numThreads <= (ns.getServerMaxRam(server) - ns.getServerUsedRam(server))) {
  38.         if (numThreads > 0) {
  39.           ns.exec(script, server, numThreads, target, scriptDelay);
  40.         }
  41.         executed = true;
  42.         break; // Move to t}he next thread after execution
  43.       }
  44.       if (!executed) {
  45.         ns.tprint(`No available server with enough RAM for thread ${i + 1}`);
  46.       }
  47.     }
  48.   }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment