Mizzajl/home/wip/hgw.js
This commit is contained in:
@@ -49,7 +49,7 @@ export async function main(ns) {
|
|||||||
|
|
||||||
//nScriptsRAM = ns.getScriptRam(sScript, "home") + Math.max(nWeakenScriptRAM, nGrowScriptRAM, nHackScriptRAM);
|
//nScriptsRAM = ns.getScriptRam(sScript, "home") + Math.max(nWeakenScriptRAM, nGrowScriptRAM, nHackScriptRAM);
|
||||||
//ns.tprint("nScriptsRAM = " + nScriptsRAM);
|
//ns.tprint("nScriptsRAM = " + nScriptsRAM);
|
||||||
if (entry.maxRam >= 64 && serverList[name].rootAccess === true) {
|
if (entry.maxRam >= 20 && serverList[name].rootAccess === true) {
|
||||||
|
|
||||||
if (sOverrideTarget !== undefined) {
|
if (sOverrideTarget !== undefined) {
|
||||||
sTarget = sOverrideTarget;
|
sTarget = sOverrideTarget;
|
||||||
@@ -73,7 +73,7 @@ export async function main(ns) {
|
|||||||
ns.exec(sScript, entry.serverName, 1, sTarget, nFrequency, true, false);
|
ns.exec(sScript, entry.serverName, 1, sTarget, nFrequency, true, false);
|
||||||
await ns.sleep(1);
|
await ns.sleep(1);
|
||||||
}
|
}
|
||||||
else if (entry.maxRam < 64 && entry.maxRam > 0 && serverList[name].rootAccess === true) {
|
else if (entry.maxRam < 20 && entry.maxRam > 0 && serverList[name].rootAccess === true) {
|
||||||
ns.scriptKill(sScript, entry.serverName);
|
ns.scriptKill(sScript, entry.serverName);
|
||||||
ns.scriptKill(sShareScript, entry.serverName);
|
ns.scriptKill(sShareScript, entry.serverName);
|
||||||
ns.scriptKill(sWeakenScript, entry.serverName);
|
ns.scriptKill(sWeakenScript, entry.serverName);
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"home":{"n00dles":{"nectar-net":{"phantasy":{"netlink":{},"crush-fitness":{},"avmnite-02h":{"rothman-uni":{},"summit-uni":{},"syscore":{"lexo-corp":{"global-pharm":{"deltaone":{"defcomm":{"taiyang-digital":{"applied-energetics":{"stormtech":{".":{"nwo":{"ecorp":{},"The-Cave":{}}}}},"run4theh111z":{"fulcrumtech":{"omnitek":{"clarkinc":{}}},"vitalife":{"4sigma":{"b-and-a":{}}}}}},"icarus":{"nova-med":{"microdyne":{"helios":{"kuai-gong":{"blade":{"megacorp":{}},"powerhouse-fitness":{"fulcrumassets":{}}}}}}}}}},"rho-construction":{},"millenium-fitness":{"aerocorp":{"omnia":{"solaris":{}}},"snap-fitness":{"unitalife":{"univ-energy":{"infocomm":{}},"zeus-med":{"zb-def":{"titan-labs":{}}}}}}}}}}},"foodnstuff":{},"sigma-cosmetics":{"zer0":{"omega-net":{"the-hub":{},"johnson-ortho":{}}},"max-hardware":{}},"joesguns":{},"hong-fang-tea":{},"harakiri-sushi":{},"iron-gym":{"CSEC":{"neo-net":{"computek":{"zb-institute":{"alpha-ent":{},"aevum-police":{"galactic-cyber":{}}},"catalyst":{},"I.I.I.I":{}}},"silver-helix":{}}},"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":{}}}
|
{"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":{}}}
|
||||||
13
Mizzajl/home/ShareHome.js
Normal file
13
Mizzajl/home/ShareHome.js
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
/** @param {NS} ns */
|
||||||
|
export async function main(ns) {
|
||||||
|
const bKill = ns.args[0]; // if true kill all existing processess
|
||||||
|
const sShareScript = "factionboost.js";
|
||||||
|
|
||||||
|
if (bKill) { ns.killall("home"); }
|
||||||
|
else { ns.scriptKill(sShareScript, "home"); }
|
||||||
|
|
||||||
|
let nShare = Math.floor(((ns.getServerMaxRam("home") - ns.getServerUsedRam("home")) / ns.getScriptRam(sShareScript)));
|
||||||
|
if (nShare > 0) {
|
||||||
|
ns.exec(sShareScript, "home", nShare);
|
||||||
|
}
|
||||||
|
}
|
||||||
37
Mizzajl/home/Start.js
Normal file
37
Mizzajl/home/Start.js
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
/** @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 sServerListFile = "serverList.txt";
|
||||||
|
const sBestServerFile = "bestTarget.txt";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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);}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -5,7 +5,7 @@ export async function main(ns) {
|
|||||||
let cracks = {};
|
let cracks = {};
|
||||||
cracks = getCracks(ns);
|
cracks = getCracks(ns);
|
||||||
let maxPorts = Object.keys(cracks).length;
|
let maxPorts = Object.keys(cracks).length;
|
||||||
findBestTarget(ns, 999, maxPorts, ns.getHackingLevel(),"");
|
findBestTarget(ns, 999, maxPorts, ns.getHackingLevel(),"n00dles");
|
||||||
let bestTarget = ns.read("bestTarget.txt")
|
let bestTarget = ns.read("bestTarget.txt")
|
||||||
ns.tprint("Best Target: " + bestTarget);
|
ns.tprint("Best Target: " + bestTarget);
|
||||||
ns.tprint(Object.keys(JSON.parse(ns.read("serverList.txt"))).length);
|
ns.tprint(Object.keys(JSON.parse(ns.read("serverList.txt"))).length);
|
||||||
|
|||||||
@@ -5,13 +5,15 @@ export async function main(ns) {
|
|||||||
goals
|
goals
|
||||||
get money
|
get money
|
||||||
upgrade home ram
|
upgrade home ram
|
||||||
/*
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
let nPID = ns.run("serverlister.js");
|
let nPID = ns.run("serverlister.js");
|
||||||
while (ns.getRunningScript(nPID)){
|
while (ns.getRunningScript(nPID)){
|
||||||
ns.tprint("waiting for script to finish");
|
ns.tprint("waiting for script to finish");
|
||||||
await ns.sleep(100);
|
await ns.sleep(100);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ export async function main(ns) {
|
|||||||
const nHackScriptRAM = 1.75;
|
const nHackScriptRAM = 1.75;
|
||||||
const nGrowScriptRAM = 1.7;
|
const nGrowScriptRAM = 1.7;
|
||||||
const nWeakenScriptRAM = 1.75;
|
const nWeakenScriptRAM = 1.75;
|
||||||
|
const nThisScriptRAM = 7.25;
|
||||||
|
|
||||||
|
|
||||||
//abort script if sTarget is undefined
|
//abort script if sTarget is undefined
|
||||||
@@ -97,6 +98,7 @@ export async function main(ns) {
|
|||||||
nCurrentSecurity = ns.getServerSecurityLevel(sTarget);
|
nCurrentSecurity = ns.getServerSecurityLevel(sTarget);
|
||||||
nCurrentMoney = ns.getServerMoneyAvailable(sTarget);
|
nCurrentMoney = ns.getServerMoneyAvailable(sTarget);
|
||||||
|
|
||||||
|
/*
|
||||||
nBonusWeaken = 0;
|
nBonusWeaken = 0;
|
||||||
if (nCurrentSecurity > nMinSecurity + 3) {
|
if (nCurrentSecurity > nMinSecurity + 3) {
|
||||||
nBonusWeaken = 4;
|
nBonusWeaken = 4;
|
||||||
@@ -105,7 +107,7 @@ export async function main(ns) {
|
|||||||
if (nCurrentMoney <= nMaxMoney * 0.8) {
|
if (nCurrentMoney <= nMaxMoney * 0.8) {
|
||||||
nBonusGrow = 11;
|
nBonusGrow = 11;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
nGrowThreads = Math.max(1 + nBonusGrow, getGrowThreads(ns, sTarget, nHackThreads));
|
nGrowThreads = Math.max(1 + nBonusGrow, getGrowThreads(ns, sTarget, nHackThreads));
|
||||||
nGrowThreadsINT = Math.ceil(nGrowThreads);
|
nGrowThreadsINT = Math.ceil(nGrowThreads);
|
||||||
@@ -125,14 +127,14 @@ export async function main(ns) {
|
|||||||
nUsedRAM = ns.getServerUsedRam(sRunner);
|
nUsedRAM = ns.getServerUsedRam(sRunner);
|
||||||
nFreeRam = nMaxRAM - nUsedRAM;
|
nFreeRam = nMaxRAM - nUsedRAM;
|
||||||
|
|
||||||
while (nFreeRam <= (nWeakenScriptRAM * nWeakenThreads) + nHomeServerReserve + 6) {
|
while (nFreeRam <= (nWeakenScriptRAM * nWeakenThreads) + nThisScriptRAM) {
|
||||||
await ns.sleep(100);
|
await ns.sleep(100);
|
||||||
nMaxRAM = ns.getServerMaxRam(sRunner);
|
nMaxRAM = ns.getServerMaxRam(sRunner);
|
||||||
nUsedRAM = ns.getServerUsedRam(sRunner);
|
nUsedRAM = ns.getServerUsedRam(sRunner);
|
||||||
nFreeRam = nMaxRAM - nUsedRAM;
|
nFreeRam = nMaxRAM - nUsedRAM;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nFreeRam > (nWeakenScriptRAM * nWeakenThreads) + nHomeServerReserve + 6) {
|
if (nFreeRam > (nWeakenScriptRAM * nWeakenThreads) + nThisScriptRAM) {
|
||||||
//Calculate estimate time of completion
|
//Calculate estimate time of completion
|
||||||
nOffset = ns.getWeakenTime(sTarget);
|
nOffset = ns.getWeakenTime(sTarget);
|
||||||
let nWeakTime = new Date(currentDate.getTime() + nOffset);
|
let nWeakTime = new Date(currentDate.getTime() + nOffset);
|
||||||
@@ -149,7 +151,7 @@ export async function main(ns) {
|
|||||||
nUsedRAM = ns.getServerUsedRam(sRunner);
|
nUsedRAM = ns.getServerUsedRam(sRunner);
|
||||||
nFreeRam = nMaxRAM - nUsedRAM;
|
nFreeRam = nMaxRAM - nUsedRAM;
|
||||||
|
|
||||||
while (nFreeRam <= (nGrowScriptRAM * nGrowThreads) + nHomeServerReserve + 6) {
|
while (nFreeRam <= (nGrowScriptRAM * nGrowThreads) + nThisScriptRAM) {
|
||||||
await ns.sleep(100);
|
await ns.sleep(100);
|
||||||
nMaxRAM = ns.getServerMaxRam(sRunner);
|
nMaxRAM = ns.getServerMaxRam(sRunner);
|
||||||
nUsedRAM = ns.getServerUsedRam(sRunner);
|
nUsedRAM = ns.getServerUsedRam(sRunner);
|
||||||
@@ -157,7 +159,7 @@ export async function main(ns) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nCurrentSecurity <= (nMinSecurity + 1) && nFreeRam > (nGrowScriptRAM * nGrowThreads) + nHomeServerReserve + 6) {
|
if (nCurrentSecurity <= (nMinSecurity + 1) && nFreeRam > (nGrowScriptRAM * nGrowThreads) + nThisScriptRAM) {
|
||||||
|
|
||||||
//Calculate estimate time of completion
|
//Calculate estimate time of completion
|
||||||
nOffset = ns.getGrowTime(sTarget);
|
nOffset = ns.getGrowTime(sTarget);
|
||||||
@@ -175,7 +177,7 @@ export async function main(ns) {
|
|||||||
nUsedRAM = ns.getServerUsedRam(sRunner);
|
nUsedRAM = ns.getServerUsedRam(sRunner);
|
||||||
nFreeRam = nMaxRAM - nUsedRAM;
|
nFreeRam = nMaxRAM - nUsedRAM;
|
||||||
|
|
||||||
while (nFreeRam <= (nHackScriptRAM * nHackThreads) + nHomeServerReserve + 6) {
|
while (nFreeRam <= (nHackScriptRAM * nHackThreads) + nThisScriptRAM) {
|
||||||
await ns.sleep(100);
|
await ns.sleep(100);
|
||||||
nMaxRAM = ns.getServerMaxRam(sRunner);
|
nMaxRAM = ns.getServerMaxRam(sRunner);
|
||||||
nUsedRAM = ns.getServerUsedRam(sRunner);
|
nUsedRAM = ns.getServerUsedRam(sRunner);
|
||||||
@@ -183,7 +185,7 @@ export async function main(ns) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nCurrentMoney >= nMaxMoney * 0.8 && nFreeRam > (nHackScriptRAM * nHackThreads) + nHomeServerReserve + 6) {
|
if (nCurrentMoney >= nMaxMoney * 0.8 && nFreeRam > (nHackScriptRAM * nHackThreads) + nThisScriptRAM) {
|
||||||
|
|
||||||
//Calculate estimate time of completion
|
//Calculate estimate time of completion
|
||||||
nOffset = ns.getHackTime(sTarget);
|
nOffset = ns.getHackTime(sTarget);
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"serverName":"clarkinc","maxRam":0,"maxMoney":56342049041.25,"minSec":15,"minPorts":5,"minHackLvl":1195,"rootAccess":true,"openPorts":0,"serverOrgs":"Clarke Incorporated","serverCores":14,"serverFiles":["beyond-man.lit","cost-of-immortality.lit"]}
|
{"serverName":"n00dles","maxRam":4,"maxMoney":70000,"minSec":1,"minPorts":0,"minHackLvl":1,"rootAccess":true,"openPorts":0,"serverOrgs":"Noodle Bar","serverCores":1,"serverFiles":["factionboost.js"]}
|
||||||
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
|||||||
{"setting":{
|
{"setting":{
|
||||||
"autoUpgrades":true,
|
"autoUpgrades":true,
|
||||||
"autoPurchaseServers":true,
|
"autoPurchaseServers":true,
|
||||||
"batchHacks":1,
|
"batchHacks":3,
|
||||||
"batchFrequency":100
|
"batchFrequency":100
|
||||||
}}
|
}}
|
||||||
@@ -15,12 +15,12 @@ export async function main(ns) {
|
|||||||
const nServ = ns.getPurchasedServers();
|
const nServ = ns.getPurchasedServers();
|
||||||
|
|
||||||
const sShareScript = "factionboost.js";
|
const sShareScript = "factionboost.js";
|
||||||
let nScripts = 0;
|
//let nScripts = 0;
|
||||||
|
|
||||||
//kill all scripts
|
//kill all scripts
|
||||||
for (let i = 0; i < nServ.length; i++) {
|
for (let i = 0; i < nServ.length; i++) {
|
||||||
|
|
||||||
nScripts = Math.floor(ns.getServerMaxRam(nServ[i]) / ns.getScriptRam(sShareScript));
|
//nScripts = Math.floor(ns.getServerMaxRam(nServ[i]) / ns.getScriptRam(sShareScript));
|
||||||
|
|
||||||
if (bKill) { ns.killall(nServ[i]); }
|
if (bKill) { ns.killall(nServ[i]); }
|
||||||
else { ns.scriptKill(sShareScript, nServ[i]); }
|
else { ns.scriptKill(sShareScript, nServ[i]); }
|
||||||
|
|||||||
78
Mizzajl/home/wip/hgw.js
Normal file
78
Mizzajl/home/wip/hgw.js
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
import { getGrowThreads, getSetting } from "Library.js";
|
||||||
|
|
||||||
|
/** @param {NS} ns */
|
||||||
|
export async function main(ns) {
|
||||||
|
ns.tail();
|
||||||
|
const sTarget = ns.args[0]; // target server
|
||||||
|
const sHackScript = "RMhack.js";
|
||||||
|
const sGrowScript = "RMgrow.js";
|
||||||
|
const sWeakenScript = "RMweaken.js";
|
||||||
|
const sServerListFile = "serverList.txt";
|
||||||
|
|
||||||
|
const nHackScriptRAM = 1.75;
|
||||||
|
const nGrowScriptRAM = 1.7;
|
||||||
|
const nWeakenScriptRAM = 1.75;
|
||||||
|
const nThisScriptRAM = 4.65;
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
//let nMaxRAM = ns.getServerMaxRam("home");
|
||||||
|
let oServerlist = JSON.parse(ns.read(sServerListFile));
|
||||||
|
//let nMaxRAM = [name, entry] of Object.entries(oServerlist);
|
||||||
|
let nMaxRAM = oServerlist["home"].maxRam;
|
||||||
|
//ns.print("nMaxRAM = " + nMaxRAM);
|
||||||
|
|
||||||
|
let nWeakenTime = ns.getWeakenTime(sTarget);
|
||||||
|
let nGrowTime = nWeakenTime * 0.8;
|
||||||
|
let nHackTime = nWeakenTime / 4;
|
||||||
|
|
||||||
|
let nGrowDelay = nWeakenTime - nGrowTime;
|
||||||
|
let nHackDelay = nWeakenTime - nHackTime;
|
||||||
|
|
||||||
|
let nUsedRAM = 0;
|
||||||
|
|
||||||
|
let nHackThreads;
|
||||||
|
let nGrowThreads;
|
||||||
|
let nGrowThreadsINT;
|
||||||
|
let nWeakenThreads;
|
||||||
|
let nWeakenThreadsINT;
|
||||||
|
|
||||||
|
for (let i = 0; nUsedRAM < nMaxRAM - nThisScriptRAM; i++) {
|
||||||
|
|
||||||
|
nHackThreads = i;
|
||||||
|
|
||||||
|
nGrowThreads = Math.max(2, getGrowThreads(ns, sTarget, nHackThreads));
|
||||||
|
nGrowThreadsINT = Math.ceil(nGrowThreads);
|
||||||
|
|
||||||
|
//25 hacks or 12.5 grows
|
||||||
|
nWeakenThreads = Math.max(2, (nHackThreads / 25) + (nGrowThreads / 12.5));
|
||||||
|
nWeakenThreadsINT = Math.ceil(nWeakenThreads);
|
||||||
|
|
||||||
|
nUsedRAM = nThisScriptRAM + (nHackThreads * nHackScriptRAM) + (nGrowThreadsINT * nGrowScriptRAM) + (nWeakenThreadsINT * nWeakenScriptRAM);
|
||||||
|
//ns.print("nMaxRAM = " + nMaxRAM + " nUsedRAM = " + nUsedRAM);
|
||||||
|
}
|
||||||
|
ns.print("nMaxRAM = " + nMaxRAM + " nUsedRAM = " + nUsedRAM);
|
||||||
|
|
||||||
|
|
||||||
|
let nHackPID = ns.run(sHackScript, nHackThreads, sTarget, false, nHackDelay - 100);
|
||||||
|
let nGrowPID = ns.run(sGrowScript, nGrowThreadsINT, sTarget, false, nGrowDelay - 50);
|
||||||
|
let nWeakenPID = ns.run(sWeakenScript, nWeakenThreadsINT, sTarget, false, 0);
|
||||||
|
//ns.tail(nHackPID, "home", nHackThreads, sTarget, false, nHackDelay - 100);
|
||||||
|
//ns.tail(nGrowPID, "home", nGrowThreadsINT, sTarget, false, nGrowDelay - 50);
|
||||||
|
//ns.tail(nWeakenPID, "home", nWeakenThreadsINT, sTarget, false, 0);
|
||||||
|
|
||||||
|
await Promise.all([
|
||||||
|
ns.nextPortWrite(nHackPID),
|
||||||
|
ns.nextPortWrite(nGrowPID),
|
||||||
|
ns.nextPortWrite(nWeakenPID)
|
||||||
|
])
|
||||||
|
await ns.sleep(1);
|
||||||
|
|
||||||
|
let nHackFinnish = ns.readPort(nHackPID);
|
||||||
|
let nGrowFinnish = ns.readPort(nGrowPID);
|
||||||
|
let nWeakenFinnish = ns.readPort(nWeakenPID);
|
||||||
|
|
||||||
|
ns.print("nHackFinnish = " + nHackFinnish);
|
||||||
|
ns.print("nGrowFinnish = " + nGrowFinnish);
|
||||||
|
ns.print("nWeakenFinnish = " + nWeakenFinnish);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user