Advertisement
spezticle

bitburner - script collection

Mar 16th, 2024 (edited)
902
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 0===================================/infect.js===================================0
  2. /** @param {NS} ns */
  3. export async function main(ns) {
  4.     var hackscript = "autostart.js";
  5.     var txt_neighbors = "neighbors.txt";
  6.     var txt_hackers = "hackerservers.txt";
  7.     var txt_myservers = "myservers.txt";
  8.     var neighbors = JSON.parse(ns.read(txt_neighbors));
  9.     var hackerservers = JSON.parse(ns.read(txt_hackers));
  10.     var myservers = JSON.parse(ns.read(txt_myservers));
  11.     var nohack = hackerservers.concat(myservers);
  12.     var retrieve_files = "files.js";
  13.     var update_script = "scp.js";
  14.     ns.exec(retrieve_files, "home");
  15.     ns.exec(update_script, "home", 1);
  16.     ns.exec(open_ports, "home", 1);
  17.     for (let i = 0; i < neighbors.length; i++) {
  18.         var node = neighbors[i];
  19.         var sur = ns.getServerUsedRam(node).toPrecision(4);
  20.         var smr = ns.getServerMaxRam(node).toPrecision(4);
  21.         var sra = smr - sur; // server ram availabe
  22.         ns.killall(node);
  23.         await ns.sleep(200);
  24.         var sr2r = ns.getScriptRam(hackscript, node);
  25.         if (sr2r < 1) { var sr2r = 1; }
  26.         var rwt = ((sra - sr2r) / sr2r).toFixed(0);
  27.         if (rwt < 1) { var rwt = 1 };
  28.         if (!nohack.includes(node)) {
  29.             ns.exec(hackscript, node, rwt);
  30.         }
  31.     }
  32. }
  33. 0===================================infect.js/===================================0
  34. 0===================================/files.js===================================0
  35. /** @param {NS} ns */
  36. export async function main(ns) {
  37.     var txt_neighbors = "neighbors.txt";
  38.     var txt_hackers = "hackerservers.txt";
  39.     var txt_myservers = "myservers.txt";
  40.     var neighbors = JSON.parse(ns.read(txt_neighbors));
  41.     var hackerservers = JSON.parse(ns.read(txt_hackers));
  42.     var myservers = JSON.parse(ns.read(txt_myservers));
  43.     var nohack = hackerservers.concat(myservers);
  44.     var filetypes = ["lit", "txt", "msg", "cct"];
  45.     var files = [];
  46.     var contracts = [];
  47.     for (let i = 0; i < filetypes.length; i++) {
  48.         var ext = filetypes[i];
  49.         for (let h = 0; h < neighbors.length; h++) {
  50.             var node = neighbors[h];
  51.             let matches = ns.ls(node, ext);
  52.             if (matches.length > 0) {
  53.                 for (let g = 0; g < matches.length; g++) {
  54.                     let match = matches[g];
  55.                     if (match.includes(".cct") && !contracts.includes(match)) {
  56.                         contracts.push(match);
  57.                         //ns.tprint(match)
  58.                     } else if (!files.includes(match)) {
  59.                         //ns.tprint(match, " ", node)
  60.                         files.push(match);
  61.                         //ns.tprint(files.length)
  62.                         ns.scp(match, "home");
  63.                         //ns.tprint(node, "\n", "\t", match)
  64.  
  65.                     }
  66.                 }
  67.  
  68.             }
  69.             for (let i = 0; i < files.length; i++) {
  70.                 let file = files[i];
  71.                 ns.scp(file, "home", node)
  72.             }
  73.         }
  74.         //ns.tprint(files.length);
  75.  
  76.     }
  77. }
  78. 0===================================/files.js===================================0
  79.  
  80. 1===================================/openports.js===================================1
  81. /** @param {NS} ns */
  82. export async function main(ns) {
  83.     var hacktools = ["BruteSSH.exe", "FTPCrack.exe", "relaySMTP.exe", "HTTPWorm.exe", "SQLInject.exe"];
  84.     var neighbors = JSON.parse(ns.read("neighbors.txt"));
  85.     var hackerservers = JSON.parse(ns.read("hackerservers.txt"));
  86.     var myservers = JSON.parse(ns.read("myservers.txt"));
  87.     var nohack = hackerservers.concat(myservers);
  88.     for (let i = 0; i < neighbors.length; i++) {
  89.         let node = neighbors[i];
  90.         //      if (!hackerservers.includes(node)) {
  91.         var count = 0;
  92.         if (ns.fileExists("BruteSSH.exe", "home")) { ns.brutessh(node); count++; };
  93.         if (ns.fileExists("FTPCrack.exe", "home")) { ns.ftpcrack(node); count++; };
  94.         if (ns.fileExists("relaySMTP.exe", "home")) { ns.relaysmtp(node); count++; };
  95.         if (ns.fileExists("HTTPWorm.exe", "home")) { ns.httpworm(node); count++; };
  96.         if (ns.fileExists("SQLInject.exe", "home")) { ns.sqlinject(node); count++; };
  97.  
  98.         if (ns.getServerNumPortsRequired(node) > count) {
  99.             console.log("Need more hacker tools for " + node)
  100.         } else { ns.nuke(node) }
  101.     }
  102. }
  103. 1===================================openports.js/===================================1
  104. 2===================================/scp.js===================================2
  105. /** @param {NS} ns */
  106. export async function main(ns) {
  107.     var txt_neighbors = "neighbors.txt";
  108.     var txt_hackers = "hackerservers.txt";
  109.     var txt_myservers = "myservers.txt";
  110.     var scripts_to_copy = ["hack.js","autostart.js","weaken.js", "grow.js"];
  111.     var scripts_to_del = ["alwaysweaken.js"]
  112.     var neighbors = JSON.parse(ns.read(txt_neighbors));
  113.     var hackerservers = JSON.parse(ns.read(txt_hackers));
  114.     var myservers = JSON.parse(ns.read(txt_myservers));
  115.     var nohack = hackerservers.concat(myservers);
  116.     function copy_files(node) {
  117.         for (let fCount = 0; fCount < scripts_to_copy.length; fCount++) {
  118.             let script = scripts_to_copy[fCount];
  119.             ns.scp(script, node, "home");
  120.             if (!ns.fileExists(script, node)) {
  121.                 ns.tprint(script, " failed to copy on ", node);
  122.             };
  123.            
  124.         };
  125.         for (let i = 0; i < scripts_to_del.length; i ++){
  126.             let script = scripts_to_del[i];
  127.             if (ns.fileExists(script,node)){ ns.rm(script,node);}
  128.         }
  129.     };
  130.     for (let iCount = 0; iCount < neighbors.length; iCount++) {
  131.         let node = neighbors[iCount];
  132.         if (!nohack.includes(node)) {
  133.             copy_files(node);
  134. //          delete_files(node);
  135.         };
  136.     };
  137. }
  138. 2===================================scp.js/===================================2
  139. 3===================================/autostart.js===================================3
  140. /** @param {NS} ns */
  141. export async function main(ns) {
  142.     while (true) {
  143.         var node = ns.getHostname();
  144.         var hackscript = ns.getScriptName();
  145.         var logfile = node + ".txt";
  146.         var sur = ns.getServerUsedRam(node).toPrecision(4);
  147.         var smr = ns.getServerMaxRam(node).toPrecision(4);
  148.         var ssl = ns.getServerSecurityLevel(node).toPrecision(4);
  149.         var sms = ns.getServerMinSecurityLevel(node).toPrecision(4);
  150.         var smm = ns.getServerMaxMoney(node);
  151.         var sma = ns.getServerMoneyAvailable(node);
  152.         var sra = smr - sur; // server ram availabe
  153.         var security_status = ssl - sms;
  154.         var money_status = smm - sma;
  155.         var sr2r = ns.getScriptRam(hackscript, node);
  156.         if (sr2r < 1) { var sr2r = 1; }
  157.         var rwt = ((sra - sr2r) / sr2r).toFixed(0);
  158.         if (rwt < 1) { var rwt = 1 };
  159.         if (security_status != 0) {
  160.             ns.write(logfile, ("+=====================/Weaken==================+\n"), "a");
  161.             ns.write(logfile, ("Security Status: " + ssl.toLocaleString() + "-" + sms.toLocaleString() + " = " + (ssl - sms).toLocaleString() + " != " + 0 + "\n"), "a");
  162.             ns.write(logfile, "C " + "Start weaken: " + (await ns.weaken(node)) + "\n", "a");
  163.             var ssl = ns.getServerSecurityLevel(node).toPrecision(4);
  164.             ns.write(logfile, "W " + "New security level: " + ssl + "\n", "a");
  165.             //ns.write(logfile, "C " + "Call " + autostart + ": " + (ns.exec(autostart, node)) + "\n", "a");
  166.             ns.write(logfile, ("+======================Weaken/===================+" + "\n"), "a");
  167.         } else if (money_status != 0) {
  168.             ns.write(logfile, ("+=====================/Grow==================+\n"), "a");
  169.             ns.write(logfile, ("Money Status: " + smm.toLocaleString() + " - " + sma.toLocaleString() + " = " + (smm - sma).toLocaleString() + " != " + 0 + "\n"), "a")
  170.             ns.write(logfile, "C " + "Start grow: " + (await ns.grow(node)) + "\n", "a");
  171.             var sma = ns.getServerMoneyAvailable(node);
  172.             ns.write(logfile, "G " + "Money now available: " + sma.toLocaleString() + "\n", "a");
  173.             //ns.write(logfile, "C " + "Call " + autostart + ": " + (ns.exec(autostart, node)) + "\n", "a");
  174.             ns.write(logfile, ("+======================Grow/===================+" + "\n"), "a");
  175.         } else {
  176.             ns.write(logfile, ("+=====================/Hack==================+\n"), "a");
  177.             var ght = ns.getHackTime(node).toPrecision(4);
  178.             ns.write(logfile, "C " + "Start hack: " + (await ns.hack(node)) + "\n", "a");
  179.             ns.write(logfile, "H " + "Hacktime = " + ght.toLocaleString() + "\n", "a");
  180.             //ns.write(logfile, "C " + "Call " + autostart + ": " + (ns.exec(autostart, node)) + "\n", "a");
  181.             ns.write(logfile, ("+======================Hack/===================+" + "\n"), "a");
  182.         }
  183.         //ns.exec(hackscript, node, rwt);
  184.     }
  185. }
  186. 3===================================autostart.js/===================================3
  187. 4===================================/hacknet.js===================================4
  188. /** @param {NS} ns */
  189. export async function main(ns) {
  190.     function primary() {
  191.         const desiredNodes = 9;
  192.         const desiredLevel = 200;
  193.         const desiredRAM = 64;
  194.         const desiredCore = 16;
  195.         buyNodes(desiredNodes);
  196.         upgradeNodeLevel(desiredLevel);
  197.         upgradeNodeRAM(desiredRAM);
  198.         upgradeCores(desiredCore);
  199.     }
  200.     function buyNodes(numNodes) {
  201.         const ownedNodes = ns.hacknet.numNodes();
  202.         for (let i = 0; i < numNodes; i++) {
  203.             while ((ns.getServerMoneyAvailable("home") >= ns.hacknet.getPurchaseNodeCost()) && (ns.hacknet.numNodes() < numNodes)) {
  204.                 ns.hacknet.purchaseNode();
  205.                 ns.tprint("Purchased  newnode")
  206.             }
  207.         }
  208.     }
  209.     function upgradeNodeLevel(targetLevel) {
  210.         const ownedNodes = ns.hacknet.numNodes();
  211.         for (let i = 0; i < ownedNodes; i++) {
  212.             //let nodename = ns.hacknet.getNodeStats(i).name ;
  213.             //let nodelevel = ns.hacknet.getNodeStats(i).level ;
  214.             //let mymoney = ns.getServerMoneyAvailable("home") ;
  215.             //let upgrade = ns.hacknet.getLevelUpgradeCost(i, 1) ;
  216.             while (ns.hacknet.getNodeStats(i).level < targetLevel && ns.getServerMoneyAvailable("home") >= ns.hacknet.getLevelUpgradeCost(i, 1)) {
  217.                 ns.hacknet.upgradeLevel(i, 1);
  218.             }
  219.         }
  220.     }
  221.     function upgradeNodeRAM(targetRAM) {
  222.         const ownedNodes = ns.hacknet.numNodes();
  223.         for (let i = 0; i < ownedNodes; i++) {
  224.             while (ns.hacknet.getNodeStats(i).ram < targetRAM && ns.getServerMoneyAvailable("home") >= ns.hacknet.getRamUpgradeCost(i, 1)) {
  225.                 ns.hacknet.upgradeRam(i, 1);
  226.                 ns.tprint("Upgraded RAM on " + ns.hacknet.getNodeStats(i).name + " to " + ns.hacknet.getNodeStats(i).ram);
  227.             }
  228.         }
  229.     }
  230.     function upgradeCores(targetCores) {
  231.         const ownedNodes = ns.hacknet.numNodes();
  232.         for (let i = 0; i < ownedNodes; i++) {
  233.             while (ns.hacknet.getNodeStats(i).cores < targetCores && ns.getServerMoneyAvailable("home") >= ns.hacknet.getCoreUpgradeCost(i, 1)) {
  234.                 ns.hacknet.upgradeCore(i, 1);
  235.                 ns.tprint("Upgraded Cores on " + ns.hacknet.getNodeStats(i).name + " to " + ns.hacknet.getNodeStats(i).cores)
  236.             }
  237.         }
  238.     }
  239.     const numberWithCommas = (number) => {
  240.         return number.toLocaleString();
  241.     };
  242.  
  243.     while (true) {
  244.         primary();
  245.         let minutes = 5;
  246.         let seconds = minutes * 60;
  247.         let miliseconds = seconds * 1000;
  248.         ns.tprint(numberWithCommas(ns.hacknet.getNodeStats(1).totalProduction));
  249.         await ns.sleep(miliseconds);
  250.     }
  251.     ns.exit();
  252. }
  253. 4===================================/hacknet.js===================================4
Tags: Bitburner
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement