low ram scripts in "lowram" folder, start with run lowram/lowrun.js
and the target server as first argument
This commit is contained in:
@@ -1,104 +0,0 @@
|
||||
import { getGrowThreads, getSetting } from "Library.js";
|
||||
|
||||
/** @param {NS} ns */
|
||||
export async function main(ns) {
|
||||
ns.tail();
|
||||
const sTarget = ns.args[0]; // target server
|
||||
const sHackScript = "RMhack.js";
|
||||
const sGrowScript = "RMgrow.js";
|
||||
const sWeakenScript = "RMweaken.js";
|
||||
const sServerListFile = "serverList.txt";
|
||||
|
||||
const nHackScriptRAM = 1.75;
|
||||
const nGrowScriptRAM = 1.7;
|
||||
const nWeakenScriptRAM = 1.75;
|
||||
const nThisScriptRAM = 4.65;
|
||||
|
||||
while (true) {
|
||||
//let nMaxRAM = ns.getServerMaxRam("home");
|
||||
let oServerlist = JSON.parse(ns.read(sServerListFile));
|
||||
//let nMaxRAM = [name, entry] of Object.entries(oServerlist);
|
||||
let nMaxRAM = oServerlist["home"].maxRam;
|
||||
//ns.print("nMaxRAM = " + nMaxRAM);
|
||||
|
||||
let nWeakenTime = ns.getWeakenTime(sTarget);
|
||||
let nGrowTime = nWeakenTime * 0.8;
|
||||
let nHackTime = nWeakenTime / 4;
|
||||
|
||||
let nGrowDelay = nWeakenTime - nGrowTime;
|
||||
let nHackDelay = nWeakenTime - nHackTime;
|
||||
|
||||
let nUsedRAM = nThisScriptRAM;
|
||||
|
||||
let nHackThreads;
|
||||
let nGrowThreads;
|
||||
let nGrowThreadsINT;
|
||||
let nWeakenThreads;
|
||||
let nWeakenThreadsINT;
|
||||
let nCheckRAM;
|
||||
let nTotalHackRAM;
|
||||
let nTotalGrowRAM;
|
||||
let nTotalWeakenRAM;
|
||||
|
||||
for (let i = 1; nUsedRAM < nMaxRAM; i++) {
|
||||
|
||||
nHackThreads = i;
|
||||
ns.print("nHackThreads = " + nHackThreads);
|
||||
|
||||
nGrowThreads = Math.max(2, getGrowThreads(ns, sTarget, nHackThreads));
|
||||
nGrowThreadsINT = Math.ceil(nGrowThreads);
|
||||
ns.print("nGrowThreads = " + nGrowThreads);
|
||||
ns.print("nGrowThreadsINT = " + nGrowThreadsINT);
|
||||
|
||||
//25 hacks or 12.5 grows
|
||||
nWeakenThreads = Math.max(2, (nHackThreads / 25) + (nGrowThreadsINT / 12.5));
|
||||
nWeakenThreadsINT = Math.ceil(nWeakenThreads);
|
||||
ns.print("nWeakenThreads = " + nWeakenThreads);
|
||||
ns.print("nWeakenThreadsINT = " + nWeakenThreadsINT);
|
||||
|
||||
nTotalHackRAM = (nHackThreads * nHackScriptRAM);
|
||||
nTotalGrowRAM = (nGrowThreadsINT * nGrowScriptRAM);
|
||||
nTotalWeakenRAM = (nWeakenThreadsINT * nWeakenScriptRAM);
|
||||
ns.print("nTotalHackRAM = " + nTotalHackRAM);
|
||||
ns.print("nTotalGrowRAM = " + nTotalGrowRAM);
|
||||
ns.print("nTotalWeakenRAM = " + nTotalWeakenRAM);
|
||||
|
||||
|
||||
|
||||
nCheckRAM = nThisScriptRAM + (nHackThreads * nHackScriptRAM) + (nGrowThreadsINT * nGrowScriptRAM) + (nWeakenThreadsINT * nWeakenScriptRAM);
|
||||
ns.print("nCheckRAM = " + nCheckRAM);
|
||||
|
||||
if (nCheckRAM < nMaxRAM) {
|
||||
nUsedRAM = nCheckRAM;
|
||||
}
|
||||
else {
|
||||
break;
|
||||
}
|
||||
ns.print("nMaxRAM = " + nMaxRAM + " nUsedRAM = " + nUsedRAM);
|
||||
}
|
||||
ns.print("nMaxRAM = " + nMaxRAM + " nUsedRAM = " + nUsedRAM);
|
||||
|
||||
|
||||
let nHackPID = ns.run(sHackScript, nHackThreads, sTarget, false, nHackDelay - 100);
|
||||
let nGrowPID = ns.run(sGrowScript, nGrowThreadsINT, sTarget, false, nGrowDelay - 50);
|
||||
let nWeakenPID = ns.run(sWeakenScript, nWeakenThreadsINT, sTarget, false, 0);
|
||||
//ns.tail(nHackPID, "home", nHackThreads, sTarget, false, nHackDelay - 100);
|
||||
//ns.tail(nGrowPID, "home", nGrowThreadsINT, sTarget, false, nGrowDelay - 50);
|
||||
//ns.tail(nWeakenPID, "home", nWeakenThreadsINT, sTarget, false, 0);
|
||||
|
||||
await Promise.all([
|
||||
ns.nextPortWrite(nHackPID),
|
||||
ns.nextPortWrite(nGrowPID),
|
||||
ns.nextPortWrite(nWeakenPID)
|
||||
])
|
||||
await ns.sleep(1);
|
||||
|
||||
let nHackFinnish = ns.readPort(nHackPID);
|
||||
let nGrowFinnish = ns.readPort(nGrowPID);
|
||||
let nWeakenFinnish = ns.readPort(nWeakenPID);
|
||||
|
||||
ns.print("nHackFinnish = " + nHackFinnish);
|
||||
ns.print("nGrowFinnish = " + nGrowFinnish);
|
||||
ns.print("nWeakenFinnish = " + nWeakenFinnish);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user