more work on the lowram scripts
This commit is contained in:
@@ -49,7 +49,7 @@ export async function main(ns) {
|
||||
|
||||
//nScriptsRAM = ns.getScriptRam(sScript, "home") + Math.max(nWeakenScriptRAM, nGrowScriptRAM, nHackScriptRAM);
|
||||
//ns.tprint("nScriptsRAM = " + nScriptsRAM);
|
||||
if (entry.maxRam >= 20 && serverList[name].rootAccess === true) {
|
||||
if (entry.maxRam >= 64 && serverList[name].rootAccess === true) {
|
||||
|
||||
if (sOverrideTarget !== undefined) {
|
||||
sTarget = sOverrideTarget;
|
||||
@@ -73,7 +73,7 @@ export async function main(ns) {
|
||||
ns.exec(sScript, entry.serverName, 1, sTarget, nFrequency, true, false);
|
||||
await ns.sleep(1);
|
||||
}
|
||||
else if (entry.maxRam < 20 && entry.maxRam > 0 && serverList[name].rootAccess === true) {
|
||||
else if (entry.maxRam < 64 && entry.maxRam > 0 && serverList[name].rootAccess === true) {
|
||||
ns.scriptKill(sScript, entry.serverName);
|
||||
ns.scriptKill(sShareScript, entry.serverName);
|
||||
ns.scriptKill(sWeakenScript, entry.serverName);
|
||||
|
||||
@@ -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;
|
||||
@@ -241,3 +241,15 @@ 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); }
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"home":{"n00dles":{"CSEC":{}},"foodnstuff":{"zer0":{"phantasy":{"crush-fitness":{"rothman-uni":{"aevum-police":{"global-pharm":{"omnia":{"icarus":{"taiyang-digital":{}},"solaris":{"zb-def":{"titan-labs":{"stormtech":{"4sigma":{"blade":{"ecorp":{}},"nwo":{"fulcrumassets":{}}},".":{"powerhouse-fitness":{"The-Cave":{}}}},"vitalife":{"omnitek":{"b-and-a":{"megacorp":{}}}}},"applied-energetics":{},"run4theh111z":{"fulcrumtech":{"kuai-gong":{"clarkinc":{}}},"helios":{}}}}},"deltaone":{"defcomm":{},"univ-energy":{"infocomm":{"microdyne":{}},"nova-med":{}}}}}},"catalyst":{"millenium-fitness":{"galactic-cyber":{"unitalife":{"zeus-med":{}}},"aerocorp":{}}}}}},"nectar-net":{"neo-net":{"computek":{"syscore":{"rho-construction":{"snap-fitness":{}}}}},"silver-helix":{"johnson-ortho":{"summit-uni":{},"I.I.I.I":{"lexo-corp":{}}}},"omega-net":{"the-hub":{"zb-institute":{"alpha-ent":{}}},"netlink":{},"avmnite-02h":{}}}},"sigma-cosmetics":{},"joesguns":{"max-hardware":{}},"hong-fang-tea":{},"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":{}}}
|
||||
{"home":{"n00dles":{},"foodnstuff":{"zer0":{"silver-helix":{}}},"sigma-cosmetics":{"CSEC":{"neo-net":{"johnson-ortho":{}},"phantasy":{}}},"joesguns":{},"hong-fang-tea":{},"harakiri-sushi":{"max-hardware":{}},"iron-gym":{"nectar-net":{"omega-net":{"the-hub":{"rothman-uni":{"millenium-fitness":{"aerocorp":{"deltaone":{"defcomm":{},"univ-energy":{}}}}}},"computek":{"catalyst":{},"I.I.I.I":{}},"netlink":{"zb-institute":{"lexo-corp":{"global-pharm":{}}},"summit-uni":{"rho-construction":{"snap-fitness":{"omnia":{"icarus":{"zb-def":{"titan-labs":{"fulcrumtech":{"4sigma":{"powerhouse-fitness":{}},"kuai-gong":{"nwo":{"ecorp":{}}}},"helios":{".":{"blade":{"fulcrumassets":{}},"clarkinc":{}}}}}}},"unitalife":{"solaris":{},"zeus-med":{"infocomm":{},"taiyang-digital":{"run4theh111z":{"vitalife":{}}},"nova-med":{"microdyne":{"stormtech":{"omnitek":{"b-and-a":{"megacorp":{},"The-Cave":{}}}}},"applied-energetics":{}}}}}},"alpha-ent":{}},"syscore":{"aevum-police":{"galactic-cyber":{}}}},"crush-fitness":{},"avmnite-02h":{}}}},"darkweb":{},"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":{}}}
|
||||
@@ -7,7 +7,7 @@ export async function main(ns) {
|
||||
let maxPorts = Object.keys(cracks).length;
|
||||
scanServerList(ns);
|
||||
let manualTargetOverride = "";
|
||||
if (ns.getHackingLevel() < 200) {
|
||||
if (ns.getHackingLevel() < 50) {
|
||||
manualTargetOverride = "n00dles";
|
||||
};
|
||||
findBestTarget(ns, 999, maxPorts, ns.getHackingLevel(), manualTargetOverride);
|
||||
|
||||
@@ -1,37 +1,31 @@
|
||||
import { RunAndWait } from "./Library";
|
||||
/** @param {NS} ns */
|
||||
export async function main(ns) {
|
||||
ns.tail();
|
||||
|
||||
const sServerListScript = "Serverlist.js";
|
||||
const sGangScript = "gang/auto-gang2.js";
|
||||
const sPServScript = "purchaseServers.js";
|
||||
const sBatchController = "EveryServerRun.js";
|
||||
const sBackdoorScript = "backdoor.js";
|
||||
const sUpdateTarget = "Updatebesttarget.js"
|
||||
const sMonitorScript = "autoexec.js"
|
||||
|
||||
|
||||
const sMonitorScript = "autoexec.js";
|
||||
const sServerListFile = "serverList.txt";
|
||||
const sBestServerFile = "bestTarget.txt";
|
||||
|
||||
await RunAndWait(ns, sServerListScript);
|
||||
|
||||
const oServerList = JSON.parse(ns.read(sServerListFile));
|
||||
const oHome = oServerList["home"];
|
||||
|
||||
if (!ns.isRunning(sServerListScript)){ns.run(sServerListScript);}
|
||||
while(ns.isRunning(sServerListScript)){await ns.sleep(100);}
|
||||
|
||||
if (!ns.isRunning(sGangScript)){ns.run(sGangScript);}
|
||||
|
||||
if (!ns.isRunning(sPServScript)){ns.run(sPServScript);}
|
||||
|
||||
if (!ns.isRunning(sBackdoorScript)){ns.run(sBackdoorScript);}
|
||||
while(ns.isRunning(sBackdoorScript)){await ns.sleep(100);}
|
||||
|
||||
if (!ns.isRunning(sUpdateTarget)){ns.run(sUpdateTarget);}
|
||||
while(ns.isRunning(sUpdateTarget)){await ns.sleep(100);}
|
||||
|
||||
if (!ns.isRunning(sBatchController)){ns.run(sBatchController, 1, "n00dles");}
|
||||
while(ns.isRunning(sBatchController)){await ns.sleep(100);}
|
||||
|
||||
if (!ns.isRunning(sMonitorScript)){ns.run(sMonitorScript);}
|
||||
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); } }
|
||||
}
|
||||
@@ -5,7 +5,11 @@ export async function main(ns) {
|
||||
let cracks = {};
|
||||
cracks = getCracks(ns);
|
||||
let maxPorts = Object.keys(cracks).length;
|
||||
findBestTarget(ns, 999, maxPorts, ns.getHackingLevel(),"");
|
||||
let manualTargetOverride = "";
|
||||
if (ns.getHackingLevel() < 50) {
|
||||
manualTargetOverride = "n00dles";
|
||||
};
|
||||
findBestTarget(ns, 999, maxPorts, ns.getHackingLevel(), manualTargetOverride);
|
||||
let bestTarget = ns.read("bestTarget.txt")
|
||||
ns.tprint("Best Target: " + bestTarget);
|
||||
ns.tprint(Object.keys(JSON.parse(ns.read("serverList.txt"))).length);
|
||||
|
||||
@@ -50,18 +50,18 @@ export async function main(ns) {
|
||||
let nBonusWeaken = 0;
|
||||
let nBonusGrow = 0;
|
||||
|
||||
/*if (nCurrentSecurity > nMinSecurity + 3) {
|
||||
nBonusWeaken = 4;
|
||||
if (nCurrentSecurity > nMinSecurity + 2) {
|
||||
nBonusWeaken = 10;
|
||||
}
|
||||
if (nCurrentMoney <= nMaxMoney * 0.8) {
|
||||
nBonusGrow = 9;
|
||||
}*/
|
||||
nBonusGrow = 10;
|
||||
}
|
||||
|
||||
let nGrowThreads = Math.max(12 + nBonusGrow, getGrowThreads(ns, sTarget, nHackThreads));
|
||||
let nGrowThreads = Math.max(2 + nBonusGrow, getGrowThreads(ns, sTarget, nHackThreads));
|
||||
let nGrowThreadsINT = Math.ceil(nGrowThreads);
|
||||
|
||||
//25 hacks or 12.5 grows
|
||||
let nWeakenThreads = Math.max(1 + nBonusWeaken, (nHackThreads / 25) + (nGrowThreads / 12.5));
|
||||
let nWeakenThreads = Math.max(2 + nBonusWeaken, (nHackThreads / 25) + (nGrowThreads / 12.5));
|
||||
let nWeakenThreadsINT = Math.ceil(nWeakenThreads);
|
||||
|
||||
//main variables
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"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"]}
|
||||
{"serverName":"omega-net","maxRam":32,"maxMoney":62700899,"minSec":9,"minPorts":2,"minHackLvl":186,"rootAccess":true,"openPorts":1,"serverOrgs":"Omega Software","serverCores":2,"serverFiles":["Library.js","RMgrow.js","RMhack.js","RMweaken.js","batch.js","factionboost.js","settings.txt","the-new-god.lit"]}
|
||||
@@ -14,7 +14,7 @@ const STATS_TRESHOLD = 0.7;
|
||||
const STATS_MIN = 4000;
|
||||
const STATS_HARD_MIN = 200;
|
||||
const TRAIN_CHANCE = 0.2;
|
||||
const RESPECT_MIN = 2e+7;
|
||||
const RESPECT_MIN = 2e+6;
|
||||
|
||||
const WANTED_PENALTY_TRESHOLD = 0.99;
|
||||
const WARFARE_TRESHOLD = 2;
|
||||
|
||||
61
Mizzajl/home/lowram/Lowgrow.js
Normal file
61
Mizzajl/home/lowram/Lowgrow.js
Normal file
@@ -0,0 +1,61 @@
|
||||
/** @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 sLowGrowScript = "lowram/Lowgrow.js";
|
||||
|
||||
const sGrowScript = "RMgrow.js";
|
||||
|
||||
const nThisScriptRAM = ns.getScriptRam(sLowGrowScript, "home");
|
||||
|
||||
|
||||
let nMoney = ns.getServerMoneyAvailable(sTarget);
|
||||
const nMaxMoney = ns.getServerMaxMoney(sTarget);
|
||||
|
||||
|
||||
const startValue = nMoney; // First argument: starting value
|
||||
const target = nMaxMoney; // Second argument: target value
|
||||
let result = startValue; // Initialize result with the starting value
|
||||
let n = 1;
|
||||
// For loop that continues until the result exceeds or matches the target
|
||||
for (; result < target; n++) {
|
||||
result += 1; // Add 1 before multiplication
|
||||
result *= n; // Multiply by the current step value
|
||||
}
|
||||
let nGrowThreadsNeeded = n * ns.growthAnalyze(sTarget, n, 1);
|
||||
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"));
|
||||
if (nFreeRam >= (ns.getScriptRam(sGrowScript, "home") * nGrowThreadsNeeded)) {
|
||||
|
||||
|
||||
let nGrowPID = ns.run(sGrowScript, Math.ceil(nGrowThreadsNeeded), sTarget);
|
||||
await ns.nextPortWrite(nGrowPID);
|
||||
await ns.sleep(1000);
|
||||
nMoney = ns.getServerMoneyAvailable(sTarget);
|
||||
}
|
||||
else {
|
||||
ns.print("Too smol");
|
||||
let nGrowPID = ns.run(sGrowScript, Math.ceil((nFreeRam - nThisScriptRAM) / ns.getScriptRam(sGrowScript, "home")), sTarget);
|
||||
await ns.nextPortWrite(nGrowPID);
|
||||
await ns.sleep(1000);
|
||||
nMoney = ns.getServerMoneyAvailable(sTarget);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//back to Lowrun
|
||||
ns.spawn(sRunScript, { threads: 1, spawnDelay: 0 }, sTarget);
|
||||
|
||||
|
||||
}
|
||||
@@ -9,12 +9,6 @@ export async function main(ns) {
|
||||
const sWeakenScript = "RMweaken.js";
|
||||
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 nGrowScriptRAM = 1.7;
|
||||
const nWeakenScriptRAM = 1.75;
|
||||
|
||||
@@ -11,6 +11,7 @@ export async function main(ns) {
|
||||
const sBatchScript = "lowram/Lowhgw.js";
|
||||
const sPrepScript = "lowram/Lowprep.js";
|
||||
const sRunScript = "lowram/Lowrun.js";
|
||||
const sGrowScript = "lowram/Lowgrow.js";
|
||||
|
||||
//declare variables
|
||||
const sWeakenScript = "RMweaken.js";
|
||||
|
||||
@@ -7,6 +7,7 @@ export async function main(ns) {
|
||||
const sBatchScript = "lowram/Lowhgw.js";
|
||||
const sPrepScript = "lowram/Lowprep.js";
|
||||
const sRunScript = "lowram/Lowrun.js";
|
||||
const sGrowScript = "lowram/Lowgrow.js";
|
||||
|
||||
const nTargetMoney = ns.getServerMoneyAvailable(sTarget);
|
||||
const nTargetMaxMoney = ns.getServerMaxMoney(sTarget);
|
||||
@@ -16,17 +17,14 @@ export async function main(ns) {
|
||||
ns.print(sTarget + " Money = " + nTargetMoney.toLocaleString() + " / " + nTargetMaxMoney.toLocaleString());
|
||||
ns.print(sTarget + " Security = " + nTargetSecurity.toLocaleString() + " / " + nTargetMinSecurity.toLocaleString());
|
||||
|
||||
if ( nTargetSecurity > nTargetMinSecurity) {
|
||||
ns.killall();
|
||||
if (nTargetSecurity > nTargetMinSecurity + 1) {
|
||||
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 if (nTargetMoney < nTargetMaxMoney) {
|
||||
ns.print("need to prep MONEY, running " + sGrowScript);
|
||||
ns.spawn(sGrowScript, { 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
@@ -1,6 +1,6 @@
|
||||
{"setting":{
|
||||
"autoUpgrades":true,
|
||||
"autoPurchaseServers":true,
|
||||
"batchHacks":3,
|
||||
"batchHacks":1,
|
||||
"batchFrequency":100
|
||||
}}
|
||||
Reference in New Issue
Block a user