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 +1 @@
|
|||||||
{"serverName":"omega-net","maxRam":32,"maxMoney":62276075,"minSec":9,"minPorts":2,"minHackLvl":180,"rootAccess":true,"openPorts":0,"serverOrgs":"Omega Software","serverCores":3,"serverFiles":["Library.js","RMgrow.js","RMhack.js","RMweaken.js","batch.js","contract-105224.cct","contract-263536.cct","settings.txt","the-new-god.lit"]}
|
{"serverName":"omega-net","maxRam":32,"maxMoney":62276075,"minSec":9,"minPorts":2,"minHackLvl":180,"rootAccess":true,"openPorts":1,"serverOrgs":"Omega Software","serverCores":3,"serverFiles":["Library.js","RMgrow.js","RMhack.js","RMweaken.js","batch.js","contract-105224.cct","contract-263536.cct","settings.txt","the-new-god.lit"]}
|
||||||
@@ -9,6 +9,12 @@ export async function main(ns) {
|
|||||||
const sWeakenScript = "RMweaken.js";
|
const sWeakenScript = "RMweaken.js";
|
||||||
const sServerListFile = "serverList.txt";
|
const sServerListFile = "serverList.txt";
|
||||||
|
|
||||||
|
// Lowram settings
|
||||||
|
const sBatchScript = "lowram/Lowhgw.js";
|
||||||
|
const sPrepScript = "lowram/Lowprep.js";
|
||||||
|
const sRunScript = "lowram/Lowrun.js";
|
||||||
|
|
||||||
|
|
||||||
const nHackScriptRAM = 1.75;
|
const nHackScriptRAM = 1.75;
|
||||||
const nGrowScriptRAM = 1.7;
|
const nGrowScriptRAM = 1.7;
|
||||||
const nWeakenScriptRAM = 1.75;
|
const nWeakenScriptRAM = 1.75;
|
||||||
@@ -39,37 +45,47 @@ export async function main(ns) {
|
|||||||
let nTotalHackRAM;
|
let nTotalHackRAM;
|
||||||
let nTotalGrowRAM;
|
let nTotalGrowRAM;
|
||||||
let nTotalWeakenRAM;
|
let nTotalWeakenRAM;
|
||||||
|
let nTempHackThreads;
|
||||||
|
let nTempGrowThreads;
|
||||||
|
let nTempGrowThreadsINT;
|
||||||
|
let nTempWeakenThreads;
|
||||||
|
let nTempWeakenThreadsINT;
|
||||||
|
|
||||||
for (let i = 1; nUsedRAM < nMaxRAM; i++) {
|
for (let i = 1; nUsedRAM < nMaxRAM; i++) {
|
||||||
|
|
||||||
nHackThreads = i;
|
nTempHackThreads = i;
|
||||||
ns.print("nHackThreads = " + nHackThreads);
|
ns.print("nTempHackThreads = " + nTempHackThreads);
|
||||||
|
|
||||||
nGrowThreads = Math.max(2, getGrowThreads(ns, sTarget, nHackThreads));
|
nTempGrowThreads = Math.max(2, getGrowThreads(ns, sTarget, nTempHackThreads));
|
||||||
nGrowThreadsINT = Math.ceil(nGrowThreads);
|
nTempGrowThreadsINT = Math.ceil(nTempGrowThreads);
|
||||||
ns.print("nGrowThreads = " + nGrowThreads);
|
ns.print("nTempGrowThreads = " + nTempGrowThreads);
|
||||||
ns.print("nGrowThreadsINT = " + nGrowThreadsINT);
|
ns.print("nTempGrowThreadsINT = " + nTempGrowThreadsINT);
|
||||||
|
|
||||||
//25 hacks or 12.5 grows
|
//25 hacks or 12.5 grows
|
||||||
nWeakenThreads = Math.max(2, (nHackThreads / 25) + (nGrowThreadsINT / 12.5));
|
nTempWeakenThreads = Math.max(2, (nTempHackThreads / 25) + (nTempGrowThreadsINT / 12.5));
|
||||||
nWeakenThreadsINT = Math.ceil(nWeakenThreads);
|
nTempWeakenThreadsINT = Math.ceil(nTempWeakenThreads);
|
||||||
ns.print("nWeakenThreads = " + nWeakenThreads);
|
ns.print("nTempWeakenThreads = " + nTempWeakenThreads);
|
||||||
ns.print("nWeakenThreadsINT = " + nWeakenThreadsINT);
|
ns.print("nTempWeakenThreadsINT = " + nTempWeakenThreadsINT);
|
||||||
|
|
||||||
nTotalHackRAM = (nHackThreads * nHackScriptRAM);
|
nTotalHackRAM = (nTempHackThreads * nHackScriptRAM);
|
||||||
nTotalGrowRAM = (nGrowThreadsINT * nGrowScriptRAM);
|
nTotalGrowRAM = (nTempGrowThreadsINT * nGrowScriptRAM);
|
||||||
nTotalWeakenRAM = (nWeakenThreadsINT * nWeakenScriptRAM);
|
nTotalWeakenRAM = (nTempWeakenThreadsINT * nWeakenScriptRAM);
|
||||||
ns.print("nTotalHackRAM = " + nTotalHackRAM);
|
ns.print("nTotalHackRAM = " + nTotalHackRAM);
|
||||||
ns.print("nTotalGrowRAM = " + nTotalGrowRAM);
|
ns.print("nTotalGrowRAM = " + nTotalGrowRAM);
|
||||||
ns.print("nTotalWeakenRAM = " + nTotalWeakenRAM);
|
ns.print("nTotalWeakenRAM = " + nTotalWeakenRAM);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
nCheckRAM = nThisScriptRAM + (nHackThreads * nHackScriptRAM) + (nGrowThreadsINT * nGrowScriptRAM) + (nWeakenThreadsINT * nWeakenScriptRAM);
|
nCheckRAM = nThisScriptRAM + (nTempHackThreads * nHackScriptRAM) + (nTempGrowThreadsINT * nGrowScriptRAM) + (nTempWeakenThreadsINT * nWeakenScriptRAM);
|
||||||
ns.print("nCheckRAM = " + nCheckRAM);
|
ns.print("nCheckRAM = " + nCheckRAM);
|
||||||
|
|
||||||
if (nCheckRAM < nMaxRAM) {
|
if (nCheckRAM < nMaxRAM) {
|
||||||
nUsedRAM = nCheckRAM;
|
nUsedRAM = nCheckRAM;
|
||||||
|
nHackThreads = nTempHackThreads;
|
||||||
|
nGrowThreads = nTempGrowThreads;
|
||||||
|
nGrowThreadsINT = nTempGrowThreadsINT;
|
||||||
|
nWeakenThreads = nTempWeakenThreads;
|
||||||
|
nWeakenThreadsINT = nTempWeakenThreadsINT;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
break;
|
break;
|
||||||
59
Mizzajl/home/lowram/Lowprep.js
Normal file
59
Mizzajl/home/lowram/Lowprep.js
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
/** @param {NS} ns */
|
||||||
|
export async function main(ns) {
|
||||||
|
ns.tail();
|
||||||
|
const sTarget = ns.args[0]; // target server
|
||||||
|
|
||||||
|
// declare objects
|
||||||
|
const oHome = ns.getServer("home");
|
||||||
|
//const oTarget = ns.getServer(sTarget);
|
||||||
|
|
||||||
|
// Lowram settings
|
||||||
|
const sBatchScript = "lowram/Lowhgw.js";
|
||||||
|
const sPrepScript = "lowram/Lowprep.js";
|
||||||
|
const sRunScript = "lowram/Lowrun.js";
|
||||||
|
|
||||||
|
//declare variables
|
||||||
|
const sWeakenScript = "RMweaken.js";
|
||||||
|
const nCores = oHome.cpuCores;
|
||||||
|
let nSecurity = ns.getServerSecurityLevel(sTarget);
|
||||||
|
const nMinSecurity = ns.getServerMinSecurityLevel(sTarget);
|
||||||
|
const nWeakenSTR = ns.weakenAnalyze(1, nCores);
|
||||||
|
let nThreads = Math.ceil((nSecurity - nMinSecurity) / nWeakenSTR);
|
||||||
|
ns.print("nThreads = " + nThreads);
|
||||||
|
|
||||||
|
|
||||||
|
ns.tail(ns.pid, oHome.hostname, sTarget);
|
||||||
|
//ns.resizeTail(815, 395);
|
||||||
|
//ns.moveTail(1925, 0);
|
||||||
|
|
||||||
|
let nWeakenPID;
|
||||||
|
|
||||||
|
if (nThreads > 0) {
|
||||||
|
const nDelay = ns.getWeakenTime(sTarget);
|
||||||
|
|
||||||
|
ns.print("current security is: " + nSecurity);
|
||||||
|
ns.print("minimum security is: " + nMinSecurity);
|
||||||
|
ns.print("threads needed for weaken: " + nThreads);
|
||||||
|
ns.print(nThreads + " will reduce Security by " + ns.weakenAnalyze(nThreads, nCores));
|
||||||
|
ns.print(nThreads + " of " + sWeakenScript + " requires " + (ns.getScriptRam(sWeakenScript, "home") * nThreads) + " GB of RAM");
|
||||||
|
ns.print("weakening will take " + (nDelay / 1000 / 60) + " minutes");
|
||||||
|
|
||||||
|
if ((ns.getServerMaxRam(oHome.hostname) - ns.getServerUsedRam(oHome.hostname)) >= (ns.getScriptRam(sWeakenScript, "home") * nThreads)) {
|
||||||
|
nWeakenPID = ns.run(sWeakenScript, nThreads, sTarget);
|
||||||
|
ns.print("Waiting for PID = " + nWeakenPID);
|
||||||
|
await ns.nextPortWrite(nWeakenPID);
|
||||||
|
nSecurity = ns.getServerSecurityLevel(sTarget);
|
||||||
|
ns.print("Breach complete, security level is now at: " + nSecurity);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
nThreads = Math.floor(((ns.getServerMaxRam("home") - ns.getServerUsedRam("home")) / ns.getScriptRam(sWeakenScript)));
|
||||||
|
nWeakenPID = ns.run(sWeakenScript, nThreads, sTarget);
|
||||||
|
ns.print("Waiting for PID = " + nWeakenPID);
|
||||||
|
await ns.nextPortWrite(nWeakenPID);
|
||||||
|
nSecurity = ns.getServerSecurityLevel(sTarget);
|
||||||
|
ns.print("Breach in progress, security level is now at: " + nSecurity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//back to Lowrun
|
||||||
|
ns.spawn(sRunScript, { threads: 1, spawnDelay: 0 }, sTarget);
|
||||||
|
}
|
||||||
32
Mizzajl/home/lowram/Lowrun.js
Normal file
32
Mizzajl/home/lowram/Lowrun.js
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
/** @param {NS} ns */
|
||||||
|
export async function main(ns) {
|
||||||
|
ns.tail();
|
||||||
|
const sTarget = ns.args[0]; // target server
|
||||||
|
|
||||||
|
// Lowram settings
|
||||||
|
const sBatchScript = "lowram/Lowhgw.js";
|
||||||
|
const sPrepScript = "lowram/Lowprep.js";
|
||||||
|
const sRunScript = "lowram/Lowrun.js";
|
||||||
|
|
||||||
|
const nTargetMoney = ns.getServerMoneyAvailable(sTarget);
|
||||||
|
const nTargetMaxMoney = ns.getServerMaxMoney(sTarget);
|
||||||
|
const nTargetSecurity = ns.getServerSecurityLevel(sTarget);
|
||||||
|
const nTargetMinSecurity = ns.getServerMinSecurityLevel(sTarget);
|
||||||
|
|
||||||
|
ns.print(sTarget + " Money = " + nTargetMoney.toLocaleString() + " / " + nTargetMaxMoney.toLocaleString());
|
||||||
|
ns.print(sTarget + " Security = " + nTargetSecurity.toLocaleString() + " / " + nTargetMinSecurity.toLocaleString());
|
||||||
|
|
||||||
|
if ( nTargetSecurity > nTargetMinSecurity) {
|
||||||
|
ns.killall();
|
||||||
|
ns.spawn(sPrepScript, { threads: 1, spawnDelay: 0 }, sTarget);
|
||||||
|
}
|
||||||
|
else if (nTargetMoney < nTargetMaxMoney){
|
||||||
|
ns.print("need to prep MONEY, running "+sRunScript);
|
||||||
|
ns.killall();
|
||||||
|
ns.spawn(sBatchScript, { threads: 1, spawnDelay: 0 }, sTarget);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ns.killall();
|
||||||
|
ns.spawn(sBatchScript, { threads: 1, spawnDelay: 0 }, sTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user