93 lines
3.3 KiB
JavaScript
93 lines
3.3 KiB
JavaScript
import { getGrowThreads, getSetting } from "Library.js";
|
|
|
|
/** @param {NS} ns */
|
|
export async function main(ns) {
|
|
//ns.tail();
|
|
const sOverrideTarget = ns.args[0]; // run on this target instead of best
|
|
let serverList = JSON.parse(ns.read("serverList.txt"));
|
|
let bestTarget = JSON.parse(ns.read("bestTarget.txt"));
|
|
let sTarget;
|
|
|
|
if (sOverrideTarget !== undefined) {
|
|
sTarget = sOverrideTarget;
|
|
}
|
|
else {
|
|
sTarget = bestTarget.serverName;
|
|
}
|
|
|
|
let sScript = "batch.js";
|
|
const sShareScript = "factionboost.js";
|
|
const sWeakenScript = "RMweaken.js";
|
|
const sGrowScript = "RMgrow.js";
|
|
const sHackScript = "RMhack.js";
|
|
const sLibraryScript = "myLibrary.js"
|
|
const sSettingsFile = "settings.txt"
|
|
|
|
const nWeakenThreads = 1; //5
|
|
const nHackThreads = 1; //1
|
|
const nGrowThreads = getGrowThreads(ns, sTarget, nHackThreads);
|
|
//ns.tprint("nGrowThreads = " + nGrowThreads);
|
|
|
|
const nWeakenScriptRAM = 1.75 * nWeakenThreads;
|
|
const nHackScriptRAM = 1.75 * nHackThreads;
|
|
const nGrowScriptRAM = 1.7 * nGrowThreads;
|
|
//ns.tprint("nGrowScriptRAM = " + nGrowScriptRAM);
|
|
|
|
//const nFrequency = 50;
|
|
const nFrequency = getSetting(ns, "batchFrequency");
|
|
let nScriptsRAM;
|
|
let nMaxRam;
|
|
let nScripts;
|
|
|
|
for (const [name, entry] of Object.entries(serverList)) {
|
|
//let rootAccess = ns.hasRootAccess(currentServer);
|
|
|
|
//ns.tprint(entry.serverName + " sTarget = " + sTarget);
|
|
|
|
nMaxRam = ns.getServerMaxRam(entry.serverName);
|
|
//ns.tprint(entry.serverName + " nMaxRam = " + nMaxRam);
|
|
|
|
//nScriptsRAM = ns.getScriptRam(sScript, "home") + Math.max(nWeakenScriptRAM, nGrowScriptRAM, nHackScriptRAM);
|
|
//ns.tprint("nScriptsRAM = " + nScriptsRAM);
|
|
if (entry.maxRam >= 64 && serverList[name].rootAccess === true) {
|
|
|
|
if (sOverrideTarget !== undefined) {
|
|
sTarget = sOverrideTarget;
|
|
}
|
|
else {
|
|
sTarget = bestTarget.serverName;
|
|
}
|
|
|
|
//ns.tprint("sTarget = " + sTarget);
|
|
//ns.tprint("entry.serverName = " + entry.serverName);
|
|
|
|
ns.scriptKill(sScript, entry.serverName);
|
|
ns.scriptKill(sShareScript, entry.serverName);
|
|
ns.scp("myLibrary.js", entry.serverName, "home");
|
|
ns.scp(sScript, entry.serverName, "home");
|
|
ns.scp(sWeakenScript, entry.serverName, "home");
|
|
ns.scp(sGrowScript, entry.serverName, "home");
|
|
ns.scp(sHackScript, entry.serverName, "home");
|
|
ns.scp(sLibraryScript, entry.serverName, "home");
|
|
ns.scp(sSettingsFile, entry.serverName, "home");
|
|
ns.exec(sScript, entry.serverName, 1, sTarget, nFrequency, true, false);
|
|
await ns.sleep(1);
|
|
}
|
|
else if (entry.maxRam < 64 && entry.maxRam > 0 && serverList[name].rootAccess === true) {
|
|
ns.scriptKill(sScript, entry.serverName);
|
|
ns.scriptKill(sShareScript, entry.serverName);
|
|
ns.scriptKill(sWeakenScript, entry.serverName);
|
|
ns.scriptKill(sGrowScript, entry.serverName);
|
|
ns.scriptKill(sHackScript, entry.serverName);
|
|
ns.scp(sShareScript, entry.serverName);
|
|
|
|
let nShare = Math.floor(((ns.getServerMaxRam(entry.serverName) - ns.getServerUsedRam(entry.serverName)) / ns.getScriptRam(sShareScript)));
|
|
ns.tprint(entry.serverName + " nShare = " + nShare * ns.getScriptRam(sShareScript));
|
|
ns.exec(sShareScript, entry.serverName, nShare);
|
|
}
|
|
|
|
|
|
}
|
|
//ns.exec("serverlister.js", "home", 1);
|
|
}
|