fixes mostly related to WorkerList.js
This commit is contained in:
@@ -1 +1 @@
|
||||
{"nStep":30}
|
||||
{"nStep":0}
|
||||
@@ -253,3 +253,36 @@ export async function RunAndWait(ns, sScript, ...args) {
|
||||
if (!ns.isRunning(sScript, ...args)) { ns.run(sScript, ...args); }
|
||||
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`);
|
||||
}
|
||||
@@ -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":{}}}
|
||||
@@ -18,16 +18,14 @@ export async function main(ns) {
|
||||
|
||||
const oServerList = JSON.parse(ns.read(sServerListFile));
|
||||
const oHome = oServerList["home"];
|
||||
|
||||
const nHomeMaxRAM = oHome.maxRam;
|
||||
ns.print("nHomeMaxRAM = " + nHomeMaxRAM);
|
||||
|
||||
if (!ns.isRunning(sGangScript)) { ns.run(sGangScript); }
|
||||
if (!ns.isRunning(sPServScript)) { ns.run(sPServScript); }
|
||||
/*
|
||||
await RunAndWait(ns, sBackdoorScript);
|
||||
await RunAndWait(ns, sUpdateTarget);
|
||||
await RunAndWait(ns, sBatchController);
|
||||
*/
|
||||
|
||||
if (nHomeMaxRAM >= 256) { if (!ns.isRunning(sMonitorScript)) { ns.run(sMonitorScript); } }
|
||||
}
|
||||
@@ -6,7 +6,7 @@ export async function main(ns) {
|
||||
cracks = getCracks(ns);
|
||||
let maxPorts = Object.keys(cracks).length;
|
||||
let manualTargetOverride = "";
|
||||
if (ns.getHackingLevel() < 50) {
|
||||
if (ns.getHackingLevel() < 10) {
|
||||
manualTargetOverride = "n00dles";
|
||||
};
|
||||
findBestTarget(ns, 999, maxPorts, ns.getHackingLevel(), manualTargetOverride);
|
||||
|
||||
18
Mizzajl/home/WorkerList.js
Normal file
18
Mizzajl/home/WorkerList.js
Normal 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);
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@ export async function main(ns) {
|
||||
|
||||
//host and script info
|
||||
const sThisRunner = ns.getHostname();
|
||||
const sThisScript = ns.getScriptName();
|
||||
//const sThisScript = ns.getScriptName();
|
||||
const nThisPID = ns.pid;
|
||||
|
||||
// Custom color coding.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** @param {NS} ns */
|
||||
export async function main(ns) {
|
||||
ns.tail();
|
||||
//ns.tail();
|
||||
await scanRecursiveWrapper(ns);
|
||||
let currentHackingLevel = ns.getHackingLevel();
|
||||
let currentArray = [];
|
||||
|
||||
@@ -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
12
Mizzajl/home/crimes.txt
Normal 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
|
||||
@@ -28,14 +28,14 @@ export async function main(ns) {
|
||||
result *= n; // Multiply by the current step value
|
||||
}
|
||||
let nGrowThreadsNeeded = n * ns.growthAnalyze(sTarget, n, 1);
|
||||
ns.print("nGrowThreadsNeeded = " + nGrowThreadsNeeded);
|
||||
//ns.print("nGrowThreadsNeeded = " + nGrowThreadsNeeded);
|
||||
|
||||
//while (nMoney < nMaxMoney) {
|
||||
|
||||
let nFreeRam = ns.getServerMaxRam("home") - ns.getServerUsedRam("home");
|
||||
ns.print("nFreeRam = " + nFreeRam);
|
||||
ns.print("needed ram = " + Math.ceil(nFreeRam / ns.getScriptRam(sGrowScript, "home")));
|
||||
ns.print("needed ram? = " + ns.getScriptRam(sGrowScript, "home"));
|
||||
//ns.print("nFreeRam = " + nFreeRam);
|
||||
//ns.print("needed ram = " + Math.ceil(nFreeRam / ns.getScriptRam(sGrowScript, "home")));
|
||||
//ns.print("needed ram? = " + ns.getScriptRam(sGrowScript, "home"));
|
||||
if (nFreeRam >= (ns.getScriptRam(sGrowScript, "home") * nGrowThreadsNeeded)) {
|
||||
|
||||
|
||||
|
||||
@@ -48,30 +48,30 @@ export async function main(ns) {
|
||||
for (let i = 1; nUsedRAM < nMaxRAM; i++) {
|
||||
|
||||
nTempHackThreads = i;
|
||||
ns.print("nTempHackThreads = " + nTempHackThreads);
|
||||
//ns.print("nTempHackThreads = " + nTempHackThreads);
|
||||
|
||||
nTempGrowThreads = Math.max(2, getGrowThreads(ns, sTarget, nTempHackThreads));
|
||||
nTempGrowThreadsINT = Math.ceil(nTempGrowThreads);
|
||||
ns.print("nTempGrowThreads = " + nTempGrowThreads);
|
||||
ns.print("nTempGrowThreadsINT = " + nTempGrowThreadsINT);
|
||||
//ns.print("nTempGrowThreads = " + nTempGrowThreads);
|
||||
//ns.print("nTempGrowThreadsINT = " + nTempGrowThreadsINT);
|
||||
|
||||
//25 hacks or 12.5 grows
|
||||
nTempWeakenThreads = Math.max(2, (nTempHackThreads / 25) + (nTempGrowThreadsINT / 12.5));
|
||||
nTempWeakenThreadsINT = Math.ceil(nTempWeakenThreads);
|
||||
ns.print("nTempWeakenThreads = " + nTempWeakenThreads);
|
||||
ns.print("nTempWeakenThreadsINT = " + nTempWeakenThreadsINT);
|
||||
//ns.print("nTempWeakenThreads = " + nTempWeakenThreads);
|
||||
//ns.print("nTempWeakenThreadsINT = " + nTempWeakenThreadsINT);
|
||||
|
||||
nTotalHackRAM = (nTempHackThreads * nHackScriptRAM);
|
||||
nTotalGrowRAM = (nTempGrowThreadsINT * nGrowScriptRAM);
|
||||
nTotalWeakenRAM = (nTempWeakenThreadsINT * nWeakenScriptRAM);
|
||||
ns.print("nTotalHackRAM = " + nTotalHackRAM);
|
||||
ns.print("nTotalGrowRAM = " + nTotalGrowRAM);
|
||||
ns.print("nTotalWeakenRAM = " + nTotalWeakenRAM);
|
||||
//ns.print("nTotalHackRAM = " + nTotalHackRAM);
|
||||
//ns.print("nTotalGrowRAM = " + nTotalGrowRAM);
|
||||
//ns.print("nTotalWeakenRAM = " + nTotalWeakenRAM);
|
||||
|
||||
|
||||
|
||||
nCheckRAM = nThisScriptRAM + (nTempHackThreads * nHackScriptRAM) + (nTempGrowThreadsINT * nGrowScriptRAM) + (nTempWeakenThreadsINT * nWeakenScriptRAM);
|
||||
ns.print("nCheckRAM = " + nCheckRAM);
|
||||
//ns.print("nCheckRAM = " + nCheckRAM);
|
||||
|
||||
if (nCheckRAM < nMaxRAM) {
|
||||
nUsedRAM = nCheckRAM;
|
||||
@@ -84,9 +84,9 @@ export async function main(ns) {
|
||||
else {
|
||||
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);
|
||||
|
||||
@@ -20,7 +20,7 @@ export async function main(ns) {
|
||||
const nMinSecurity = ns.getServerMinSecurityLevel(sTarget);
|
||||
const nWeakenSTR = ns.weakenAnalyze(1, nCores);
|
||||
let nThreads = Math.ceil((nSecurity - nMinSecurity) / nWeakenSTR);
|
||||
ns.print("nThreads = " + nThreads);
|
||||
//ns.print("nThreads = " + nThreads);
|
||||
|
||||
|
||||
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)) {
|
||||
nWeakenPID = ns.run(sWeakenScript, nThreads, sTarget);
|
||||
ns.print("Waiting for PID = " + nWeakenPID);
|
||||
//ns.print("Waiting for PID = " + nWeakenPID);
|
||||
await ns.nextPortWrite(nWeakenPID);
|
||||
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 {
|
||||
nThreads = Math.floor(((ns.getServerMaxRam("home") - ns.getServerUsedRam("home")) / ns.getScriptRam(sWeakenScript)));
|
||||
nWeakenPID = ns.run(sWeakenScript, nThreads, sTarget);
|
||||
ns.print("Waiting for PID = " + nWeakenPID);
|
||||
//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);
|
||||
//ns.print("Breach in progress, security level is now at: " + nSecurity);
|
||||
}
|
||||
}
|
||||
//back to Lowrun
|
||||
|
||||
@@ -14,14 +14,14 @@ export async function main(ns) {
|
||||
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());
|
||||
//ns.print(sTarget + " Money = " + nTargetMoney.toLocaleString() + " / " + nTargetMaxMoney.toLocaleString());
|
||||
//ns.print(sTarget + " Security = " + nTargetSecurity.toLocaleString() + " / " + nTargetMinSecurity.toLocaleString());
|
||||
|
||||
if (nTargetSecurity > nTargetMinSecurity + 1) {
|
||||
ns.spawn(sPrepScript, { threads: 1, spawnDelay: 0 }, sTarget);
|
||||
}
|
||||
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);
|
||||
}
|
||||
else {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
||||
{"setting":{
|
||||
"autoUpgrades":true,
|
||||
"autoPurchaseServers":true,
|
||||
"batchHacks":1,
|
||||
"batchFrequency":100
|
||||
"batchHacks":100,
|
||||
"batchFrequency":1000
|
||||
}}
|
||||
Reference in New Issue
Block a user