Ramses Scripts Upload
This commit is contained in:
70
local/path/home/RMbreach.js
Normal file
70
local/path/home/RMbreach.js
Normal file
@@ -0,0 +1,70 @@
|
||||
/** @param {NS} ns */
|
||||
export async function main(ns) {
|
||||
//args
|
||||
const sTarget = ns.args[0]; // target server
|
||||
|
||||
// declare objects
|
||||
const oHome = ns.getServer("home");
|
||||
//const oTarget = ns.getServer(sTarget);
|
||||
|
||||
//declare variables
|
||||
const sWeakenScript = "RMweaken.js";
|
||||
const sBatch = "RMcontroller.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);
|
||||
let nFreeRam = ns.getServerMaxRam("home") - ns.getServerUsedRam("home");
|
||||
ns.tail("RMbreach.js", "home", sTarget);
|
||||
//ns.resizeTail(815, 395);
|
||||
//ns.moveTail(1925, 0);
|
||||
|
||||
// crack target
|
||||
// ns.run(sCrack, 1, sTarget);
|
||||
|
||||
if (nThreads > 0 && nSecurity > nMinSecurity) {
|
||||
const nDelay = ns.getWeakenTime(sTarget);
|
||||
|
||||
ns.tprint("current security is: " + nSecurity);
|
||||
ns.tprint("minimum security is: " + nMinSecurity);
|
||||
ns.tprint("threads needed for weaken: " + nThreads);
|
||||
ns.tprint(nThreads + " will reduce Security by " + ns.weakenAnalyze(nThreads, nCores));
|
||||
let nScriptRAM = ns.getScriptRam(sWeakenScript, "home");
|
||||
let nRequiredRAM = nScriptRAM * nThreads;
|
||||
ns.tprint(nThreads + " of " + sWeakenScript + " requires " + nRequiredRAM + " GB of RAM");
|
||||
ns.tprint("weakening will take " + (nDelay / 1000 / 60) + " minutes");
|
||||
|
||||
if (nFreeRam > nRequiredRAM) {
|
||||
ns.run(sWeakenScript, nThreads, sTarget);
|
||||
|
||||
await ns.sleep(Math.ceil(nDelay));
|
||||
|
||||
nSecurity = ns.getServerSecurityLevel(sTarget);
|
||||
ns.tprint("Breach complete, security level is now at: " + nSecurity);
|
||||
|
||||
}
|
||||
else {
|
||||
ns.print("not enough RAM to run all threads at once, splitting into smaller chunks...");
|
||||
while (nSecurity > nMinSecurity) {
|
||||
nThreads /= (1+(nRequiredRAM / nFreeRam));
|
||||
ns.print(Math.ceil(nRequiredRAM / nFreeRam));
|
||||
ns.print(nThreads);
|
||||
ns.print(nThreads * nScriptRAM);
|
||||
ns.run(sWeakenScript, Math.ceil(nThreads), sTarget);
|
||||
await ns.sleep(Math.ceil(nDelay));
|
||||
nSecurity = ns.getServerSecurityLevel(sTarget);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//run batch
|
||||
const nBatchPID = ns.run(sBatch, 1, sTarget);
|
||||
ns.tail(nBatchPID, "home", sBatch, 1, sTarget);
|
||||
ns.resizeTail(815, 395, nBatchPID);
|
||||
ns.moveTail(1925, 0, nBatchPID);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user