fixes + throwparty and buytea and rundist
This commit is contained in:
82
Mizzajl/home/RunDist.js
Normal file
82
Mizzajl/home/RunDist.js
Normal file
@@ -0,0 +1,82 @@
|
||||
import { sortJsonArrayByKey } from "Library.js";
|
||||
|
||||
/** @param {NS} ns */
|
||||
export async function main(ns) {
|
||||
//ns.tail();
|
||||
ns.disableLog("scp");
|
||||
let aArgs = ns.args;
|
||||
const sScript = aArgs.shift();
|
||||
let nThreads = aArgs.shift();
|
||||
if (nThreads === undefined) { nThreads = 1 };
|
||||
|
||||
ns.print(aArgs);
|
||||
|
||||
const aScriptFiles = ns.ls("home", ".js");
|
||||
const aTXTFiles = ns.ls("home", ".txt");
|
||||
//ns.tprint(aScriptFiles);
|
||||
//ns.tprint(aTXTFiles);
|
||||
|
||||
const sWeakenScript = "RMweaken.js";
|
||||
const sGrowScript = "RMgrow.js";
|
||||
const sListName = "serverList.txt";
|
||||
|
||||
if (!ns.fileExists(sListName, "home")) { ns.print(`ERROR ${sListName} does not exist.`); return false; };
|
||||
let sServerList = ns.read(sListName);
|
||||
let aSortedList;
|
||||
if (sScript === sWeakenScript || sScript === sGrowScript) {
|
||||
aSortedList = sortJsonArrayByKey(sServerList, "serverCores", "maxRam").reverse();
|
||||
} else {
|
||||
aSortedList = sortJsonArrayByKey(sServerList, "serverCores", "maxRam");
|
||||
}
|
||||
|
||||
ns.print(sScript);
|
||||
ns.print(nThreads);
|
||||
|
||||
const nScriptSize = ns.getScriptRam(sScript, "home");
|
||||
let nTotalSize = nScriptSize * nThreads;
|
||||
|
||||
ns.print("nScriptSize = " + nScriptSize);
|
||||
ns.print("nTotalSize = " + nTotalSize);
|
||||
|
||||
aSortedList.forEach((entry) => {
|
||||
let sHost = entry.serverName;
|
||||
ns.print("sHost = " + sHost)
|
||||
let nFreeRAM = ns.getServerMaxRam(entry.serverName) - ns.getServerUsedRam(entry.serverName);
|
||||
if (nThreads >= 1 && entry.rootAccess && nFreeRAM >= nTotalSize && entry.serverName !== "home") {
|
||||
ns.scp(aScriptFiles, sHost), "home";
|
||||
ns.scp(aTXTFiles, sHost), "home";
|
||||
ns.exec(sScript, sHost, nThreads, ...aArgs);
|
||||
nThreads = 0;
|
||||
nFreeRAM = ns.getServerMaxRam(entry.serverName) - ns.getServerUsedRam(entry.serverName);
|
||||
}
|
||||
else if (nThreads >= 1 && entry.rootAccess && nFreeRAM >= nScriptSize && entry.serverName !== "home") {
|
||||
let nThreadsDist = Math.floor(nFreeRAM / nScriptSize);
|
||||
ns.scp(aScriptFiles, sHost), "home";
|
||||
ns.scp(aTXTFiles, sHost), "home";
|
||||
ns.print("room for : " + nThreadsDist + " scripts");
|
||||
ns.exec(sScript, sHost, nThreadsDist, ...aArgs);
|
||||
nThreads -= nThreadsDist;
|
||||
nFreeRAM = ns.getServerMaxRam(entry.serverName) - ns.getServerUsedRam(entry.serverName);
|
||||
}
|
||||
else if (nThreads >= 1 && entry.rootAccess && nFreeRAM >= nTotalSize) {
|
||||
if (entry.serverName !== "home"){
|
||||
ns.scp(aScriptFiles, sHost), "home";
|
||||
ns.scp(aTXTFiles, sHost), "home";
|
||||
}
|
||||
ns.exec(sScript, sHost, nThreads, ...aArgs);
|
||||
nThreads = 0;
|
||||
nFreeRAM = ns.getServerMaxRam(entry.serverName) - ns.getServerUsedRam(entry.serverName);
|
||||
}
|
||||
else if (nThreads >= 1 && entry.rootAccess && nFreeRAM >= nScriptSize) {
|
||||
let nThreadsDist = Math.floor(nFreeRAM / nScriptSize);
|
||||
if (entry.serverName !== "home"){
|
||||
ns.scp(aScriptFiles, sHost), "home";
|
||||
ns.scp(aTXTFiles, sHost), "home";
|
||||
}
|
||||
ns.print("room for : " + nThreadsDist + " scripts");
|
||||
ns.exec(sScript, sHost, nThreadsDist, ...aArgs);
|
||||
nThreads -= nThreadsDist;
|
||||
nFreeRAM = ns.getServerMaxRam(entry.serverName) - ns.getServerUsedRam(entry.serverName);
|
||||
}
|
||||
});
|
||||
}
|
||||
9
Mizzajl/home/corp/BuyTea.js
Normal file
9
Mizzajl/home/corp/BuyTea.js
Normal file
@@ -0,0 +1,9 @@
|
||||
/** @param {NS} ns */
|
||||
export async function main(ns) {
|
||||
let [sDivName, sCity] = ns.args;
|
||||
//ns.tprint("sDivName = " + sDivName);
|
||||
//ns.tprint("sCity = " + sCity);
|
||||
let bSuccess = ns.corporation.buyTea(sDivName, sCity)
|
||||
//ns.tprint("bSuccess = " + bSuccess);
|
||||
ns.writePort(ns.pid, bSuccess);
|
||||
}
|
||||
@@ -14,7 +14,7 @@ export async function main(ns) {
|
||||
(oCurrentOffice.employeeJobs.Management < aWorkerDistribution[3]) ? ns.corporation.hireEmployee(sDivName, sCity, "Management") : "";
|
||||
(oCurrentOffice.employeeJobs["Research & Development"] < aWorkerDistribution[4]) ? ns.corporation.hireEmployee(sDivName, sCity, "Research & Development") : "";
|
||||
(oCurrentOffice.employeeJobs.Intern < aWorkerDistribution[5]) ? ns.corporation.hireEmployee(sDivName, sCity, "Intern") : "";
|
||||
await ns.sleep(1);
|
||||
await ns.sleep(1)
|
||||
i += 1;
|
||||
};
|
||||
ns.writePort(ns.pid, true);
|
||||
|
||||
10
Mizzajl/home/corp/ThrowParty.js
Normal file
10
Mizzajl/home/corp/ThrowParty.js
Normal file
@@ -0,0 +1,10 @@
|
||||
/** @param {NS} ns */
|
||||
export async function main(ns) {
|
||||
let [sDivName, sCity, nSpend] = ns.args;
|
||||
//ns.tprint("sDivName = " + sDivName);
|
||||
//ns.tprint("sCity = " + sCity);
|
||||
//ns.tprint("nSpend = " + nSpend);
|
||||
let nMoraleMultiplier = ns.corporation.throwParty(sDivName, sCity, nSpend)
|
||||
//ns.tprint("nMoraleMultiplier = " + nMoraleMultiplier);
|
||||
ns.writePort(ns.pid, nMoraleMultiplier);
|
||||
}
|
||||
@@ -34,11 +34,13 @@ export async function main(ns) {
|
||||
let nMaxThreads = 0;
|
||||
sortedList.forEach((entry) => {
|
||||
if (entry.rootAccess && entry.maxRam >= 1) {
|
||||
ns.scp(aFiles, "home", entry.serverName);
|
||||
if (entry.serverName !== "home") {
|
||||
ns.scp(aFiles, entry.serverName, "home");
|
||||
}
|
||||
nMaxThreads += entry.maxRam / 1.75;
|
||||
}
|
||||
})
|
||||
let nMaxThreadsINT = Math.floor(nMaxThreads-32);
|
||||
let nMaxThreadsINT = Math.floor(nMaxThreads - 64);
|
||||
ns.print("nMaxThreadsINT = " + nMaxThreadsINT);
|
||||
|
||||
|
||||
|
||||
@@ -60,14 +60,18 @@ export async function main(ns) {
|
||||
ns.print("sHost = " + sHost)
|
||||
let nFreeRAM = ns.getServerMaxRam(entry.serverName) - ns.getServerUsedRam(entry.serverName);
|
||||
if (nThreads >= 1 && entry.rootAccess && nFreeRAM >= nTotalSize) {
|
||||
ns.scp(sScript, sHost);
|
||||
if (entry.serverName !== "home") {
|
||||
ns.scp(sScript, sHost, "home");
|
||||
}
|
||||
ns.exec(sScript, sHost, nThreads, sTarget, bRepeat, nMsecDelay);
|
||||
nThreads = 0;
|
||||
nFreeRAM = ns.getServerMaxRam(entry.serverName) - ns.getServerUsedRam(entry.serverName);
|
||||
}
|
||||
else if (nThreads >= 1 && entry.rootAccess && nFreeRAM >= nScriptSize) {
|
||||
let nThreadsDist = Math.floor(nFreeRAM / nScriptSize);
|
||||
ns.scp(sScript, sHost);
|
||||
if (entry.serverName !== "home") {
|
||||
ns.scp(sScript, sHost, "home");
|
||||
}
|
||||
ns.print("room for : " + nThreadsDist + " scripts");
|
||||
ns.exec(sScript, sHost, nThreadsDist, sTarget, bRepeat, nMsecDelay);
|
||||
nThreads -= nThreadsDist;
|
||||
|
||||
Reference in New Issue
Block a user