Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import * as helpers from "/apis/helpers.js"
- /** @param {NS} ns */
- export async function main(ns) {
- let hackScript = "/newserver/hack.js";
- let weakenScript = "/newserver/weaken.js";
- let growScript = "/newserver/grow.js";
- let filterList = ["home", "MyServer", "darkweb"];
- let targetMoneyGainPercent = 0.5;
- let unfilteredList = [];
- let servers = await helpers.getAllServers(ns, filterList);
- ns.tprint(servers);
- //let maxRam = ns.getServerMaxRam(ns.getHostname());
- let maxRam = 8192;
- ns.tprint("Getting ratios and more.")
- for (let target of servers){
- //calculate how much money can be made in a hack per batch
- let maxMoney = ns.getServerMaxMoney(target);
- let targetMoneyGain = maxMoney * targetMoneyGainPercent;
- //get ratio of needed hack, weaken, grow, weaken
- let coreCount = ns.getServer(ns.getHostname()).cpuCores;
- let hackThreads = Math.ceil(ns.hackAnalyzeThreads(target, targetMoneyGain));
- let hAnalyze = ns.hackAnalyze(target) * hackThreads;
- let growthThreads = Math.ceil((ns.growthAnalyze(target, 2, coreCount)) * ((maxMoney - (hAnalyze * maxMoney)) / (maxMoney - hAnalyze * maxMoney)));
- let weaken1Threads = Math.ceil(hackThreads / 25);
- let weaken2Threads = Math.ceil(growthThreads / 12.5);
- //get total memory used in that ratio
- let scriptMemory = (ns.getScriptRam(hackScript) * hackThreads) +
- (ns.getScriptRam(growScript)* growthThreads) +
- (ns.getScriptRam(weakenScript) * (weaken1Threads + weaken2Threads));
- //figure out how many of those we can run with max memory
- let maxBatches = Math.floor(maxRam / scriptMemory);
- //calculate how much time is spent on the batch
- let hackTime = ns.getHackTime(target)
- let growTime = hackTime*3.2
- let weakenTime = hackTime*4
- //create a ratio of money/timeSpent
- let ratio = targetMoneyGain / hackTime * maxBatches;
- let threadsPerBatch = growthThreads + weaken1Threads + weaken2Threads + hackThreads;
- ns.tprint(" " + target + " - " + targetMoneyGain + " / " + hackTime + " * " + maxBatches + " = " + ratio + " Total threads - " + threadsPerBatch);
- //return [server, ratio, [hackCount, weakenCount, growCount, weakenCount ]]
- unfilteredList.push([target,ratio,[hackThreads,weaken1Threads, growthThreads, weaken2Threads, maxBatches]]);
- }
- let sortFilter = [[2,1]];
- let filteredList = helpers.sortArray(unfilteredList, sortFilter);
- ns.tprint(filteredList);
- }
Advertisement
Add Comment
Please, Sign In to add comment