fixes mostly related to WorkerList.js

This commit is contained in:
2024-10-13 09:23:59 +02:00
parent 72b9044ba7
commit 39b17cb62a
16 changed files with 96 additions and 35 deletions

View File

@@ -1 +1 @@
{"nStep":30} {"nStep":0}

View File

@@ -253,3 +253,36 @@ export async function RunAndWait(ns, sScript, ...args) {
if (!ns.isRunning(sScript, ...args)) { ns.run(sScript, ...args); } if (!ns.isRunning(sScript, ...args)) { ns.run(sScript, ...args); }
while (ns.isRunning(sScript, ...args)) { await ns.sleep(100); } while (ns.isRunning(sScript, ...args)) { await ns.sleep(100); }
} }
/** @param {NS} ns */
export function listWorkServers(ns) {
ns.disableLog("ALL");
//if (!ns.fileExists("serverList.txt", "home")) { scanServerList() };
let serverList = JSON.parse(ns.read("serverList.txt"));
let nTotalWorkerRAM = 0;
let nTotalFreeRAM = 0;
const nServerColumnWidth = 20;
const nValueColumnWidth = 8;
const nCoresWidth = 5;
ns.printRaw("┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┓");
ns.printRaw("┃ Server ┃ Free / Max RAM ┃ Cores ┃");
ns.printRaw("┣━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━┫");
for (const [name, entry] of Object.entries(serverList)) {
if (entry.rootAccess && entry.maxRam >= 1) {
let sServerName = entry.serverName.padEnd(nServerColumnWidth, ' ');
let nFreeRAM = entry.maxRam - ns.getServerUsedRam(entry.serverName);
let sFreeRAM = nFreeRAM.toLocaleString().padStart(nValueColumnWidth, ' ');
let sMaxRam = entry.maxRam.toLocaleString().padStart(nValueColumnWidth, ' ');
let sCores = entry.serverCores.toLocaleString().padStart(nCoresWidth, ' ');
ns.printRaw(`${sServerName}${sFreeRAM} / ${sMaxRam}${sCores}`);
nTotalWorkerRAM += entry.maxRam;
nTotalFreeRAM += nFreeRAM;
}
}
ns.printRaw("┗━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━┛");
ns.printRaw(`Total Free: ${nTotalFreeRAM} / ${nTotalWorkerRAM} GB`);
}

View File

@@ -1 +1 @@
{"home":{"n00dles":{},"foodnstuff":{},"sigma-cosmetics":{"zer0":{"phantasy":{"computek":{"I.I.I.I":{"rho-construction":{"snap-fitness":{}},"alpha-ent":{"aerocorp":{},"global-pharm":{"omnia":{"defcomm":{},"univ-energy":{"infocomm":{"microdyne":{}},"nova-med":{}}},"unitalife":{"zeus-med":{"zb-def":{"applied-energetics":{"fulcrumtech":{"kuai-gong":{}},"stormtech":{"4sigma":{"powerhouse-fitness":{}},".":{"blade":{"fulcrumassets":{}}}},"helios":{}}}}}}},"aevum-police":{}}}}}},"joesguns":{},"hong-fang-tea":{"max-hardware":{"omega-net":{"netlink":{}}}},"harakiri-sushi":{"CSEC":{}},"iron-gym":{"nectar-net":{"neo-net":{"the-hub":{"catalyst":{}},"johnson-ortho":{"rothman-uni":{"millenium-fitness":{}},"zb-institute":{},"syscore":{}},"crush-fitness":{"summit-uni":{"lexo-corp":{"galactic-cyber":{"deltaone":{"icarus":{},"solaris":{"taiyang-digital":{"titan-labs":{"vitalife":{"omnitek":{"b-and-a":{"ecorp":{}},"nwo":{"The-Cave":{}},"clarkinc":{"megacorp":{}}}}},"run4theh111z":{}}}}}}}},"avmnite-02h":{}},"silver-helix":{}}},"pserv-00":{},"pserv-01":{},"pserv-02":{},"pserv-03":{},"pserv-04":{},"pserv-05":{},"pserv-06":{},"pserv-07":{},"pserv-08":{},"pserv-09":{},"pserv-10":{},"pserv-11":{},"pserv-12":{},"pserv-13":{},"pserv-14":{},"pserv-15":{},"pserv-16":{},"pserv-17":{},"pserv-18":{},"pserv-19":{},"pserv-20":{},"pserv-21":{},"pserv-22":{},"pserv-23":{},"pserv-24":{},"darkweb":{}}} {"home":{"n00dles":{"CSEC":{"omega-net":{}}},"foodnstuff":{"nectar-net":{"silver-helix":{"the-hub":{},"netlink":{"zb-institute":{"lexo-corp":{}},"catalyst":{},"I.I.I.I":{}}},"phantasy":{"computek":{"summit-uni":{}},"avmnite-02h":{}}}},"sigma-cosmetics":{"max-hardware":{"neo-net":{"johnson-ortho":{},"crush-fitness":{"rothman-uni":{"aevum-police":{"snap-fitness":{"omnia":{"solaris":{}}}},"millenium-fitness":{}},"syscore":{"rho-construction":{"galactic-cyber":{"unitalife":{"univ-energy":{"nova-med":{}}}},"global-pharm":{}},"alpha-ent":{"aerocorp":{"deltaone":{"defcomm":{"taiyang-digital":{"titan-labs":{},"applied-energetics":{"stormtech":{"4sigma":{}}},"run4theh111z":{"fulcrumtech":{"omnitek":{"powerhouse-fitness":{}},"kuai-gong":{"blade":{"fulcrumassets":{}},"nwo":{"ecorp":{}},"clarkinc":{"megacorp":{},"The-Cave":{}}}},"vitalife":{".":{"b-and-a":{}}}}}},"icarus":{"infocomm":{"microdyne":{"helios":{}}}},"zeus-med":{"zb-def":{}}}}}}}}}},"joesguns":{},"hong-fang-tea":{"zer0":{}},"harakiri-sushi":{},"iron-gym":{},"pserv-00":{},"pserv-01":{},"pserv-02":{},"pserv-03":{},"pserv-04":{},"pserv-05":{},"pserv-06":{},"pserv-07":{},"pserv-08":{},"pserv-09":{},"pserv-10":{},"pserv-11":{},"pserv-12":{},"pserv-13":{},"pserv-14":{},"pserv-15":{},"pserv-16":{},"pserv-17":{},"pserv-18":{},"pserv-19":{},"pserv-20":{},"pserv-21":{},"pserv-22":{},"pserv-23":{},"pserv-24":{},"darkweb":{}}}

View File

@@ -18,16 +18,14 @@ export async function main(ns) {
const oServerList = JSON.parse(ns.read(sServerListFile)); const oServerList = JSON.parse(ns.read(sServerListFile));
const oHome = oServerList["home"]; const oHome = oServerList["home"];
const nHomeMaxRAM = oHome.maxRam; const nHomeMaxRAM = oHome.maxRam;
ns.print("nHomeMaxRAM = " + nHomeMaxRAM); ns.print("nHomeMaxRAM = " + nHomeMaxRAM);
if (!ns.isRunning(sGangScript)) { ns.run(sGangScript); } if (!ns.isRunning(sGangScript)) { ns.run(sGangScript); }
if (!ns.isRunning(sPServScript)) { ns.run(sPServScript); } if (!ns.isRunning(sPServScript)) { ns.run(sPServScript); }
/*
await RunAndWait(ns, sBackdoorScript); await RunAndWait(ns, sBackdoorScript);
await RunAndWait(ns, sUpdateTarget); await RunAndWait(ns, sUpdateTarget);
await RunAndWait(ns, sBatchController); await RunAndWait(ns, sBatchController);
*/
if (nHomeMaxRAM >= 256) { if (!ns.isRunning(sMonitorScript)) { ns.run(sMonitorScript); } } if (nHomeMaxRAM >= 256) { if (!ns.isRunning(sMonitorScript)) { ns.run(sMonitorScript); } }
} }

View File

@@ -6,7 +6,7 @@ export async function main(ns) {
cracks = getCracks(ns); cracks = getCracks(ns);
let maxPorts = Object.keys(cracks).length; let maxPorts = Object.keys(cracks).length;
let manualTargetOverride = ""; let manualTargetOverride = "";
if (ns.getHackingLevel() < 50) { if (ns.getHackingLevel() < 10) {
manualTargetOverride = "n00dles"; manualTargetOverride = "n00dles";
}; };
findBestTarget(ns, 999, maxPorts, ns.getHackingLevel(), manualTargetOverride); findBestTarget(ns, 999, maxPorts, ns.getHackingLevel(), manualTargetOverride);

View File

@@ -0,0 +1,18 @@
import { listWorkServers } from "/Library.js";
/** @param {NS} ns */
export async function main(ns) {
ns.disableLog("ALL");
ns.tail();
ns.resizeTail(522,625);
let nStatus = 0;
let aStatus = ["─", "╲", "│", ""];
while (true) {
ns.clearLog();
listWorkServers(ns);
ns.printRaw(aStatus[nStatus])
nStatus++;
if (nStatus > 3) nStatus = 0;
await ns.sleep(1050);
}
}

View File

@@ -9,7 +9,7 @@ export async function main(ns) {
//host and script info //host and script info
const sThisRunner = ns.getHostname(); const sThisRunner = ns.getHostname();
const sThisScript = ns.getScriptName(); //const sThisScript = ns.getScriptName();
const nThisPID = ns.pid; const nThisPID = ns.pid;
// Custom color coding. // Custom color coding.

View File

@@ -1,6 +1,6 @@
/** @param {NS} ns */ /** @param {NS} ns */
export async function main(ns) { export async function main(ns) {
ns.tail(); //ns.tail();
await scanRecursiveWrapper(ns); await scanRecursiveWrapper(ns);
let currentHackingLevel = ns.getHackingLevel(); let currentHackingLevel = ns.getHackingLevel();
let currentArray = []; let currentArray = [];

View File

@@ -1 +1 @@
{"serverName":"alpha-ent","maxRam":32,"maxMoney":656539219,"minSec":18,"minPorts":4,"minHackLvl":516,"rootAccess":true,"openPorts":3,"serverOrgs":"Alpha Enterprises","serverCores":5,"serverFiles":["factionboost.js","sector-12-crime.lit"]} {"serverName":"sigma-cosmetics","maxRam":16,"maxMoney":57500000,"minSec":7,"minPorts":0,"minHackLvl":5,"rootAccess":true,"openPorts":0,"serverOrgs":"Sigma Cosmetics","serverCores":1,"serverFiles":["factionboost.js"]}

12
Mizzajl/home/crimes.txt Normal file
View File

@@ -0,0 +1,12 @@
Shoplift, 2, Money, Dexterity, Agility
Rob Store, 60, Money, Hacking, Dexterity, Agility
Mug, 4, Money, Strength, Defense, Dexterity, Agility
Larceny, 90, Money, Hacking, Dexterity, Agility
Deal Drugs, 10, Money, Dexterity, Agility, Charisma
Forge Bonds, 300, Money, Hacking, Dexterity, Charisma
Traffic Arms, 40, Money, Strength, Defense, Dexterity, Agility, Charisma
Homicide, 3, Money, Strength, Defense, Dexterity, Agility
Grand Theft Auto, 80, Money, Strength, Defense, Dexterity, Agility, Charisma
Kidnap, 120, Money, Strength, Defense, Dexterity, Agility, Charisma
Assassination, 300, Money, Strength, Defense, Dexterity, Agility
Heist, 600, Money, Strength, Defense, Dexterity, Agility, Charisma

View File

@@ -28,14 +28,14 @@ export async function main(ns) {
result *= n; // Multiply by the current step value result *= n; // Multiply by the current step value
} }
let nGrowThreadsNeeded = n * ns.growthAnalyze(sTarget, n, 1); let nGrowThreadsNeeded = n * ns.growthAnalyze(sTarget, n, 1);
ns.print("nGrowThreadsNeeded = " + nGrowThreadsNeeded); //ns.print("nGrowThreadsNeeded = " + nGrowThreadsNeeded);
//while (nMoney < nMaxMoney) { //while (nMoney < nMaxMoney) {
let nFreeRam = ns.getServerMaxRam("home") - ns.getServerUsedRam("home"); let nFreeRam = ns.getServerMaxRam("home") - ns.getServerUsedRam("home");
ns.print("nFreeRam = " + nFreeRam); //ns.print("nFreeRam = " + nFreeRam);
ns.print("needed ram = " + Math.ceil(nFreeRam / ns.getScriptRam(sGrowScript, "home"))); //ns.print("needed ram = " + Math.ceil(nFreeRam / ns.getScriptRam(sGrowScript, "home")));
ns.print("needed ram? = " + ns.getScriptRam(sGrowScript, "home")); //ns.print("needed ram? = " + ns.getScriptRam(sGrowScript, "home"));
if (nFreeRam >= (ns.getScriptRam(sGrowScript, "home") * nGrowThreadsNeeded)) { if (nFreeRam >= (ns.getScriptRam(sGrowScript, "home") * nGrowThreadsNeeded)) {

View File

@@ -48,30 +48,30 @@ export async function main(ns) {
for (let i = 1; nUsedRAM < nMaxRAM; i++) { for (let i = 1; nUsedRAM < nMaxRAM; i++) {
nTempHackThreads = i; nTempHackThreads = i;
ns.print("nTempHackThreads = " + nTempHackThreads); //ns.print("nTempHackThreads = " + nTempHackThreads);
nTempGrowThreads = Math.max(2, getGrowThreads(ns, sTarget, nTempHackThreads)); nTempGrowThreads = Math.max(2, getGrowThreads(ns, sTarget, nTempHackThreads));
nTempGrowThreadsINT = Math.ceil(nTempGrowThreads); nTempGrowThreadsINT = Math.ceil(nTempGrowThreads);
ns.print("nTempGrowThreads = " + nTempGrowThreads); //ns.print("nTempGrowThreads = " + nTempGrowThreads);
ns.print("nTempGrowThreadsINT = " + nTempGrowThreadsINT); //ns.print("nTempGrowThreadsINT = " + nTempGrowThreadsINT);
//25 hacks or 12.5 grows //25 hacks or 12.5 grows
nTempWeakenThreads = Math.max(2, (nTempHackThreads / 25) + (nTempGrowThreadsINT / 12.5)); nTempWeakenThreads = Math.max(2, (nTempHackThreads / 25) + (nTempGrowThreadsINT / 12.5));
nTempWeakenThreadsINT = Math.ceil(nTempWeakenThreads); nTempWeakenThreadsINT = Math.ceil(nTempWeakenThreads);
ns.print("nTempWeakenThreads = " + nTempWeakenThreads); //ns.print("nTempWeakenThreads = " + nTempWeakenThreads);
ns.print("nTempWeakenThreadsINT = " + nTempWeakenThreadsINT); //ns.print("nTempWeakenThreadsINT = " + nTempWeakenThreadsINT);
nTotalHackRAM = (nTempHackThreads * nHackScriptRAM); nTotalHackRAM = (nTempHackThreads * nHackScriptRAM);
nTotalGrowRAM = (nTempGrowThreadsINT * nGrowScriptRAM); nTotalGrowRAM = (nTempGrowThreadsINT * nGrowScriptRAM);
nTotalWeakenRAM = (nTempWeakenThreadsINT * 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 + (nTempHackThreads * nHackScriptRAM) + (nTempGrowThreadsINT * nGrowScriptRAM) + (nTempWeakenThreadsINT * 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;
@@ -84,9 +84,9 @@ export async function main(ns) {
else { else {
break; break;
} }
ns.print("nMaxRAM = " + nMaxRAM + " nUsedRAM = " + nUsedRAM); //ns.print("nMaxRAM = " + nMaxRAM + " nUsedRAM = " + nUsedRAM);
} }
ns.print("nMaxRAM = " + nMaxRAM + " nUsedRAM = " + nUsedRAM); //ns.print("nMaxRAM = " + nMaxRAM + " nUsedRAM = " + nUsedRAM);
let nHackPID = ns.run(sHackScript, nHackThreads, sTarget, false, nHackDelay - 100); let nHackPID = ns.run(sHackScript, nHackThreads, sTarget, false, nHackDelay - 100);

View File

@@ -20,7 +20,7 @@ export async function main(ns) {
const nMinSecurity = ns.getServerMinSecurityLevel(sTarget); const nMinSecurity = ns.getServerMinSecurityLevel(sTarget);
const nWeakenSTR = ns.weakenAnalyze(1, nCores); const nWeakenSTR = ns.weakenAnalyze(1, nCores);
let nThreads = Math.ceil((nSecurity - nMinSecurity) / nWeakenSTR); let nThreads = Math.ceil((nSecurity - nMinSecurity) / nWeakenSTR);
ns.print("nThreads = " + nThreads); //ns.print("nThreads = " + nThreads);
ns.tail(ns.pid, oHome.hostname, sTarget); ns.tail(ns.pid, oHome.hostname, sTarget);
@@ -41,18 +41,18 @@ export async function main(ns) {
if ((ns.getServerMaxRam(oHome.hostname) - ns.getServerUsedRam(oHome.hostname)) >= (ns.getScriptRam(sWeakenScript, "home") * nThreads)) { if ((ns.getServerMaxRam(oHome.hostname) - ns.getServerUsedRam(oHome.hostname)) >= (ns.getScriptRam(sWeakenScript, "home") * nThreads)) {
nWeakenPID = ns.run(sWeakenScript, nThreads, sTarget); nWeakenPID = ns.run(sWeakenScript, nThreads, sTarget);
ns.print("Waiting for PID = " + nWeakenPID); //ns.print("Waiting for PID = " + nWeakenPID);
await ns.nextPortWrite(nWeakenPID); await ns.nextPortWrite(nWeakenPID);
nSecurity = ns.getServerSecurityLevel(sTarget); nSecurity = ns.getServerSecurityLevel(sTarget);
ns.print("Breach complete, security level is now at: " + nSecurity); //ns.print("Breach complete, security level is now at: " + nSecurity);
} }
else { else {
nThreads = Math.floor(((ns.getServerMaxRam("home") - ns.getServerUsedRam("home")) / ns.getScriptRam(sWeakenScript))); nThreads = Math.floor(((ns.getServerMaxRam("home") - ns.getServerUsedRam("home")) / ns.getScriptRam(sWeakenScript)));
nWeakenPID = ns.run(sWeakenScript, nThreads, sTarget); nWeakenPID = ns.run(sWeakenScript, nThreads, sTarget);
ns.print("Waiting for PID = " + nWeakenPID); //ns.print("Waiting for PID = " + nWeakenPID);
await ns.nextPortWrite(nWeakenPID); await ns.nextPortWrite(nWeakenPID);
nSecurity = ns.getServerSecurityLevel(sTarget); nSecurity = ns.getServerSecurityLevel(sTarget);
ns.print("Breach in progress, security level is now at: " + nSecurity); //ns.print("Breach in progress, security level is now at: " + nSecurity);
} }
} }
//back to Lowrun //back to Lowrun

View File

@@ -14,14 +14,14 @@ export async function main(ns) {
const nTargetSecurity = ns.getServerSecurityLevel(sTarget); const nTargetSecurity = ns.getServerSecurityLevel(sTarget);
const nTargetMinSecurity = ns.getServerMinSecurityLevel(sTarget); const nTargetMinSecurity = ns.getServerMinSecurityLevel(sTarget);
ns.print(sTarget + " Money = " + nTargetMoney.toLocaleString() + " / " + nTargetMaxMoney.toLocaleString()); //ns.print(sTarget + " Money = " + nTargetMoney.toLocaleString() + " / " + nTargetMaxMoney.toLocaleString());
ns.print(sTarget + " Security = " + nTargetSecurity.toLocaleString() + " / " + nTargetMinSecurity.toLocaleString()); //ns.print(sTarget + " Security = " + nTargetSecurity.toLocaleString() + " / " + nTargetMinSecurity.toLocaleString());
if (nTargetSecurity > nTargetMinSecurity + 1) { if (nTargetSecurity > nTargetMinSecurity + 1) {
ns.spawn(sPrepScript, { threads: 1, spawnDelay: 0 }, sTarget); ns.spawn(sPrepScript, { threads: 1, spawnDelay: 0 }, sTarget);
} }
else if (nTargetMoney < nTargetMaxMoney) { else if (nTargetMoney < nTargetMaxMoney) {
ns.print("need to prep MONEY, running " + sGrowScript); //ns.print("need to prep MONEY, running " + sGrowScript);
ns.spawn(sGrowScript, { threads: 1, spawnDelay: 0 }, sTarget); ns.spawn(sGrowScript, { threads: 1, spawnDelay: 0 }, sTarget);
} }
else { else {

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,6 @@
{"setting":{ {"setting":{
"autoUpgrades":true, "autoUpgrades":true,
"autoPurchaseServers":true, "autoPurchaseServers":true,
"batchHacks":1, "batchHacks":100,
"batchFrequency":100 "batchFrequency":1000
}} }}