Sync for Serverlist
This commit is contained in:
@@ -83,14 +83,14 @@ export function findBestTarget(ns, maxSec, maxPorts, currentHackLevel, manualTar
|
||||
if (!ns.fileExists("serverList.txt", "home")) scanServerList();
|
||||
let serverList = JSON.parse(ns.read("serverList.txt"));
|
||||
let bestEntry = "";
|
||||
if (manualTargetOverride.length > 0) {
|
||||
if (manualTargetOverride && manualTargetOverride.length > 0) {
|
||||
bestEntry = manualTargetOverride;
|
||||
} else {
|
||||
bestEntry = null;
|
||||
let nMaxMoneyPerChance = 0;
|
||||
let nBestMoneyPerChance = 0;
|
||||
for (const [name, entry] of Object.entries(serverList)) {
|
||||
if (entry.minSec <= maxSec && entry.minPorts <= maxPorts && entry.minHackLvl < currentHackLevel) {
|
||||
if (entry.minSec <= maxSec && entry.minPorts <= maxPorts && entry.minHackLvl <= currentHackLevel) {
|
||||
nMaxMoneyPerChance = (entry.maxMoney * ns.hackAnalyzeChance(name)) / entry.minSec;
|
||||
if (nMaxMoneyPerChance > nBestMoneyPerChance) {
|
||||
nBestMoneyPerChance = nMaxMoneyPerChance;
|
||||
@@ -172,7 +172,7 @@ export async function purchaseAndUpgradeServers(ns) {
|
||||
let targetRamInitial = 16;
|
||||
if (ns.getPurchasedServerCost(targetRamInitial) < currentMoney) {
|
||||
let sFrontZero = "0";
|
||||
if (pServcount >= 9) {
|
||||
if (pServcount > 9) {
|
||||
sFrontZero = "";
|
||||
}
|
||||
let hostname = ns.purchaseServer("pserv-" + sFrontZero + pServcount, targetRamInitial);
|
||||
@@ -241,3 +241,48 @@ export function getGrowThreads(ns, sTarget, nHackThreads, nCores) {
|
||||
let nGrowthThreads = ns.growthAnalyze(sTarget, 1 + nHackAmountPercent, nCores);
|
||||
return nGrowthThreads;
|
||||
}
|
||||
|
||||
/** @param {NS} ns */
|
||||
export async function ExecuteAndWait(ns, sScript, ...args) {
|
||||
if (!ns.isRunning(sScript, ...args)) { ns.exec(sScript, ...args); }
|
||||
while (ns.isRunning(sScript, ...args)) { await ns.sleep(100); }
|
||||
}
|
||||
|
||||
/** @param {NS} ns */
|
||||
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");
|
||||
const sFileName = "serverList.txt";
|
||||
if (!ns.fileExists(sFileName, "home")) { ns.print(`ERROR ${sFileName} does not exist.`); return false; };
|
||||
let serverList = JSON.parse(ns.read(sFileName));
|
||||
|
||||
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.toLocaleString()} / ${nTotalWorkerRAM.toLocaleString()} GB`);
|
||||
}
|
||||
20
Ramses/home/WorkerList.js
Normal file
20
Ramses/home/WorkerList.js
Normal file
@@ -0,0 +1,20 @@
|
||||
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 = ["─", "╲", "│", "╱"];
|
||||
let bWhile = true;
|
||||
while (bWhile !== false) {
|
||||
ns.clearLog();
|
||||
bWhile = listWorkServers(ns);
|
||||
//ns.printRaw(aStatus[nStatus])
|
||||
ns.setTitle(`WorkerList ${aStatus[nStatus]}`);
|
||||
nStatus++;
|
||||
if (nStatus > 3) nStatus = 0;
|
||||
await ns.sleep(1050);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user