Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /** @param {NS} ns */
- export async function main(ns) {
- //
- //1- server, 2- maxMoney 3- Growth 4- Security Level 5- Hacking Level
- // 1 acending -1 for decending
- // ex: [[4,-1],[2,1]]
- let targets = getBestValues([[4,-1],[2,1]], ns);
- //remove n00dles from the list?
- let popNoodles = true;
- //Only run on servers with at least this amount of RAM
- let minRam = 4096;
- let usableServers = [];
- let servers = ns.getPurchasedServers();
- for (let s of servers){
- if (ns.getServerMaxRam(s) >= minRam){
- ns.tprint("Adding " + s + " to usable list");
- usableServers.push(s);
- if(!ns.fileExists("/newserver/OP.js", s)){
- await ns.scp(["/newserver/OP.js", "/newserver/weaken.js", "/newserver/hack.js", "/newserver/grow.js", "/newserver/myFormulas.js"], s);
- }
- }
- }
- for (var i=0; i < targets.length; i++){
- if (targets[i][0] == "n00dles"){
- if (popNoodles){
- targets.splice(i,1);
- }
- }
- }
- targets.pop();
- await ns.sleep(5000);
- for (var i = 0; i < usableServers.length; i++) {
- //check if target list still has a valid target available
- if (i < targets.length - 1){
- ns.tprint("Executing Miner on " + usableServers[i] + " targeting " + targets[i]);
- ns.tprint(ns.exec("/newserver/OP.js", usableServers[i], 1, targets[i][0]));
- } else break;
- }
- }
- function getBestValues(sortArray, ns){
- let servers = ["home"];
- let sInfo = [];
- let serversToScan = ns.scan("home");
- while (serversToScan.length > 0) {
- let server = serversToScan.shift();
- if (!servers.includes(server) && server !== "home") {
- servers.push(server);
- serversToScan = serversToScan.concat(ns.scan(server));
- if (ns.getServerGrowth(server) > 1){
- sInfo.push([
- server,
- ns.getServerMaxMoney(server)/2,
- ns.getServerGrowth(server),
- ns.getServerMinSecurityLevel(server),
- ns.getServerRequiredHackingLevel(server)
- ]);
- }
- }
- }
- for (let sort of sortArray){
- let sortIndex = sort[0];
- let sortOrder = sort[1];
- sInfo = sInfo.sort((a,b) => (b[sortIndex] - a[sortIndex]) * sortOrder);
- }
- //sInfo = sInfo.sort((a,b) => b[4] - a[4]);
- //sort by growth
- //sInfo = sInfo.sort((a,b) => a[2] - b[2]);
- return sInfo
- }
Advertisement
Add Comment
Please, Sign In to add comment