Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /** @param {NS} ns **/
- export async function main(ns) {
- let scriptActive;
- let selfName;
- let selfSize;
- let myName;
- let scriptName;
- let scriptLen;
- let scriptRam;
- let maximumRam;
- let usedRam;
- let availableRam;
- let memPerRun;
- let threadPerRun;
- let i;
- let j;
- let serverNames;
- let serverNum;
- let realServerNum;
- serverNames = ["n00dles", "foodnstuff", "sigma-cosmetics", "joesguns", "hong-fang-tea", "harakiri-sushi", "iron-gym", "neo-net", "nectar-net", "zer0", "max-hardware", "phantasy", "silver-helix", "omega-net", "crush-fitness", "comptek", "the-hub", "netlink", "catalyst", "summit-uni", "rothman-uni", "aevum-police", "rho-construction", "millenium-fitness", "johnson-ortho", "alpha-ent", "syscore", "lexo-corp", "zb-institute", "solaris", "global-pharm", "snap-fitness", "unitalife", "deltaone", "zb-def", "zeus-med", "aerocorp", "nova-med", "icarus", "galactic-cyber", "taiyang-digital","univ-energy","infocomm","omnia","defcomm","applied-energetics","vitalife","titan-labs","microdyne","helios","stormtech","The-Cave","fulcrumassets","powerhouse-fitness","b-and-a","ecorp","blade","kuai-gong","clarkinc","megacorp","nwo","4sigma","omnitek","fulcrumtech"];
- scriptName = ["attack.js", "grow.js", "mine.js"];
- scriptRam = [];
- threadPerRun = [];
- serverNum = serverNames.length;
- scriptLen = scriptName.length;
- selfName = ns.getScriptName();
- selfSize = ns.getScriptRam(selfName);
- myName = ns.getHostname();
- maximumRam = ns.getServerMaxRam(myName);
- usedRam = ns.getServerUsedRam(myName);
- availableRam = maximumRam - usedRam - selfSize;
- for (i = 0; i < scriptLen; i++) {
- scriptRam[i] = ns.getScriptRam(scriptName[i]);
- }
- while (true) {
- realServerNum = 0;
- for (i = 0; i < serverNum; i++) {
- if (ns.hasRootAccess(serverNames[i])) {
- realServerNum++;
- }
- }
- for (i = 0; i < scriptName.length; i++) {
- memPerRun = availableRam / realServerNum;
- threadPerRun[i] = (memPerRun / scriptRam[i]) / scriptLen;
- if (threadPerRun[i] < 1) {
- ns.tprint("Not enough memory for each instance to have a thread.");
- } else {
- for (j = 0; j < serverNum; j++) {
- if (ns.hasRootAccess(serverNames[j])) {
- scriptActive = ns.isRunning(scriptName[i], myName, serverNames[j]);
- if (scriptActive) {
- ns.print(scriptName[i] + " is already running on " + myName + " for " + serverNames[j]);
- } else {
- ns.run(scriptName[i], threadPerRun[i], serverNames[j]);
- ns.tprint("Starting " + scriptName[i] + " for " + serverNames[j] + " on " + myName);
- }
- } else {
- ns.print("No root access on " + serverNames[j]);
- }
- }
- }
- }
- await ns.sleep(5000);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement