Advertisement
lanolinoil

Bitburner hackservers.ns

Dec 18th, 2021
13,903
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /** @param {NS} ns **/
  2. export async function main(ns) {
  3.    //split single argument into multiple and instantiate arrays
  4.    var myargs = ns.args[0].split(',');
  5.    var servers = [];
  6.    var minSecLevs = [];
  7.    var maxMoneys = [];
  8.    var reqHackLev = [];
  9.    var counter = 0;
  10.    //for each pair of 4 (1 server and its parameters)
  11.    for (let i = 0; (myargs.length / 4) > i; i++) {
  12.       //calculate and push to appropriate array
  13.       servers.push(myargs[4 * i]);
  14.       minSecLevs.push(Number(myargs[(3 * counter) + (i + 1)]));
  15.       maxMoneys.push(Number(myargs[(3 * counter) + (i + 2)]));
  16.       reqHackLev.push(Number(myargs[(3 * counter) + (i + 3)]));
  17.       counter++;
  18.    }
  19.    while (true) {
  20.       var count = 0;
  21.       //begin hack analyze
  22.       for (const server of servers) {
  23.          var security = minSecLevs[count] + 5;
  24.          var money = maxMoneys[count] * .75;
  25.          //weaken if server is too strong
  26.          ns.print(security);
  27.          if (reqHackLev[count] <= ns.getHackingLevel()) {
  28.             if (ns.getServerSecurityLevel(server) > security) {
  29.                ns.print("weakening...");
  30.                await ns.weaken(server)
  31.             }
  32.             //grow money if not enough money
  33.             else if (ns.getServerMoneyAvailable(server) < money) {
  34.                ns.print("growing...");
  35.                await ns.grow(server);
  36.             }
  37.             else {
  38.                //hack it
  39.                ns.print("hacking...");
  40.                await ns.hack(server);
  41.             }
  42.          }
  43.          count++;
  44.       }
  45.       await ns.sleep(1000);
  46.    }
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement