Merge branch 'main' of https://gitea.goetje-ing.de/ArchitectsOfTheBitburner/The_Bitburner_Scripts
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
/** @param {NS} ns */
|
/** @param {NS} ns */
|
||||||
export async function main(ns) {
|
export async function main(ns) {
|
||||||
ns.tail();
|
|
||||||
let aCitites = ["Sector-12", "Aevum", "Volhaven", "Chongqing", "New Tokyo", "Ishima"];
|
let aCitites = ["Sector-12", "Aevum", "Volhaven", "Chongqing", "New Tokyo", "Ishima"];
|
||||||
let sCorpName = "RM Enterprises";
|
let sCorpName = "RM Enterprises";
|
||||||
let sDivisionName = "Agri-Ram";
|
let sDivisionName = "Agri-Ram";
|
||||||
@@ -17,14 +16,16 @@ export async function main(ns) {
|
|||||||
let oWarehouseData = {};
|
let oWarehouseData = {};
|
||||||
let bUnlockStatus = false;
|
let bUnlockStatus = false;
|
||||||
let nTargetSize = 0;
|
let nTargetSize = 0;
|
||||||
|
let oNewOfficeData = {};
|
||||||
|
let oWorkerNumbers = {};
|
||||||
nListenPID = ns.run("/corp/HasCorp.js");
|
nListenPID = ns.run("/corp/HasCorp.js");
|
||||||
await ns.nextPortWrite(nListenPID);
|
await ns.nextPortWrite(nListenPID);
|
||||||
await ns.sleep(1)
|
await ns.sleep(1);
|
||||||
let bCorpExists = ns.readPort(nListenPID);
|
let bCorpExists = ns.readPort(nListenPID);
|
||||||
if (!bCorpExists) {
|
if (!bCorpExists) {
|
||||||
nListenPID = ns.run("/corp/CreateCorp.js", 1, sCorpName);
|
nListenPID = ns.run("/corp/CreateCorp.js", 1, sCorpName);
|
||||||
await ns.nextPortWrite(nListenPID);
|
await ns.nextPortWrite(nListenPID);
|
||||||
await ns.sleep(1)
|
await ns.sleep(1);
|
||||||
}
|
}
|
||||||
if (!ns.readPort(nListenPID)) { ns.tprint("Error! Couldn't start Corporation!"); return };
|
if (!ns.readPort(nListenPID)) { ns.tprint("Error! Couldn't start Corporation!"); return };
|
||||||
ns.tprint(oCorpStatus);
|
ns.tprint(oCorpStatus);
|
||||||
@@ -33,14 +34,14 @@ export async function main(ns) {
|
|||||||
ns.tprint(nStep);
|
ns.tprint(nStep);
|
||||||
nListenPID = ns.run("/corp/GetCorpData.js");
|
nListenPID = ns.run("/corp/GetCorpData.js");
|
||||||
await ns.nextPortWrite(nListenPID);
|
await ns.nextPortWrite(nListenPID);
|
||||||
await ns.sleep(1)
|
await ns.sleep(1);
|
||||||
oCorpData = ns.readPort(nListenPID);
|
oCorpData = ns.readPort(nListenPID);
|
||||||
switch (nStep) {
|
switch (nStep) {
|
||||||
case 0:
|
case 0:
|
||||||
if (!oCorpData.divisions.length > 0) {
|
if (!oCorpData.divisions.length > 0) {
|
||||||
nListenPID = ns.run("/corp/CorpStart.js", 1, sDivisionName, "Agriculture");
|
nListenPID = ns.run("/corp/CorpStart.js", 1, sDivisionName, "Agriculture");
|
||||||
await ns.nextPortWrite(nListenPID);
|
await ns.nextPortWrite(nListenPID);
|
||||||
await ns.sleep(1)
|
await ns.sleep(1);
|
||||||
};
|
};
|
||||||
oCorpStatus.nStep = 10;
|
oCorpStatus.nStep = 10;
|
||||||
break;
|
break;
|
||||||
@@ -48,12 +49,12 @@ export async function main(ns) {
|
|||||||
for (let sCity of aCitites) {
|
for (let sCity of aCitites) {
|
||||||
nListenPID = ns.run("/corp/GetDivisionsData.js", 1, sDivisionName);
|
nListenPID = ns.run("/corp/GetDivisionsData.js", 1, sDivisionName);
|
||||||
await ns.nextPortWrite(nListenPID);
|
await ns.nextPortWrite(nListenPID);
|
||||||
await ns.sleep(1)
|
await ns.sleep(1);
|
||||||
oDivisionData = ns.readPort(nListenPID);
|
oDivisionData = ns.readPort(nListenPID);
|
||||||
if (sCity !== "Sector-12" && !oDivisionData.cities.includes(sCity)) {
|
if (sCity !== "Sector-12" && !oDivisionData.cities.includes(sCity)) {
|
||||||
nListenPID = ns.run("/corp/CorpExpandCity.js", 1, sDivisionName, sCity);
|
nListenPID = ns.run("/corp/CorpExpandCity.js", 1, sDivisionName, sCity);
|
||||||
await ns.nextPortWrite(nListenPID);
|
await ns.nextPortWrite(nListenPID);
|
||||||
await ns.sleep(1)
|
await ns.sleep(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
oCorpStatus.nStep = 20;
|
oCorpStatus.nStep = 20;
|
||||||
@@ -61,23 +62,23 @@ export async function main(ns) {
|
|||||||
case 20:
|
case 20:
|
||||||
nListenPID = ns.run("/corp/HasUnlock.js", 1, "Smart Supply");
|
nListenPID = ns.run("/corp/HasUnlock.js", 1, "Smart Supply");
|
||||||
await ns.nextPortWrite(nListenPID);
|
await ns.nextPortWrite(nListenPID);
|
||||||
await ns.sleep(1)
|
await ns.sleep(1);
|
||||||
bUnlockStatus = ns.readPort(nListenPID);
|
bUnlockStatus = ns.readPort(nListenPID);
|
||||||
if (!bUnlockStatus) {
|
if (!bUnlockStatus) {
|
||||||
await ns.nextPortWrite(ns.run("/corp/BuyUnlock.js", 1, "Smart Supply"));
|
await ns.nextPortWrite(ns.run("/corp/BuyUnlock.js", 1, "Smart Supply"));
|
||||||
await ns.sleep(1)
|
await ns.sleep(1);
|
||||||
}
|
}
|
||||||
for (let sCity of aCitites) {
|
for (let sCity of aCitites) {
|
||||||
nListenPID = ns.run("/corp/GetWarehouseData.js", 1, sDivisionName, sCity);
|
nListenPID = ns.run("/corp/GetWarehouseData.js", 1, sDivisionName, sCity);
|
||||||
await ns.nextPortWrite(nListenPID);
|
await ns.nextPortWrite(nListenPID);
|
||||||
await ns.sleep(1)
|
await ns.sleep(1);
|
||||||
oWarehouseData = ns.readPort(nListenPID);
|
oWarehouseData = ns.readPort(nListenPID);
|
||||||
if (!oWarehouseData) {
|
if (!oWarehouseData) {
|
||||||
await ns.nextPortWrite(ns.run("/corp/PurchaseWarehouses.js", 1, sDivisionName, sCity));
|
await ns.nextPortWrite(ns.run("/corp/PurchaseWarehouses.js", 1, sDivisionName, sCity));
|
||||||
await ns.sleep(1)
|
await ns.sleep(1);
|
||||||
}
|
}
|
||||||
await ns.nextPortWrite(ns.run("/corp/SetSmartSupply.js", 1, sDivisionName, sCity));
|
await ns.nextPortWrite(ns.run("/corp/SetSmartSupply.js", 1, sDivisionName, sCity));
|
||||||
await ns.sleep(1)
|
await ns.sleep(1);
|
||||||
};
|
};
|
||||||
|
|
||||||
oCorpStatus.nStep = 30;
|
oCorpStatus.nStep = 30;
|
||||||
@@ -87,10 +88,10 @@ export async function main(ns) {
|
|||||||
for (let sCity of aCitites) {
|
for (let sCity of aCitites) {
|
||||||
nListenPID = ns.run("/corp/GetOfficeData.js", 1, sDivisionName, sCity);
|
nListenPID = ns.run("/corp/GetOfficeData.js", 1, sDivisionName, sCity);
|
||||||
await ns.nextPortWrite(nListenPID);
|
await ns.nextPortWrite(nListenPID);
|
||||||
await ns.sleep(1)
|
await ns.sleep(1);
|
||||||
oOfficeData = ns.readPort(nListenPID);
|
oOfficeData = ns.readPort(nListenPID);
|
||||||
await ns.nextPortWrite(ns.run("/corp/UpgradeOffice.js", 1, sDivisionName, sCity, nTargetSize, oOfficeData.size))
|
await ns.nextPortWrite(ns.run("/corp/UpgradeOffice.js", 1, sDivisionName, sCity, nTargetSize, oOfficeData.size))
|
||||||
await ns.sleep(1)
|
await ns.sleep(1);
|
||||||
}
|
}
|
||||||
oCorpStatus.nStep = 40;
|
oCorpStatus.nStep = 40;
|
||||||
break;
|
break;
|
||||||
@@ -98,11 +99,11 @@ export async function main(ns) {
|
|||||||
for (let sCity of aCitites) {
|
for (let sCity of aCitites) {
|
||||||
nListenPID = ns.run("/corp/GetOfficeData.js", 1, sDivisionName, sCity);
|
nListenPID = ns.run("/corp/GetOfficeData.js", 1, sDivisionName, sCity);
|
||||||
await ns.nextPortWrite(nListenPID);
|
await ns.nextPortWrite(nListenPID);
|
||||||
await ns.sleep(1)
|
await ns.sleep(1);
|
||||||
oOfficeData = ns.readPort(nListenPID);
|
oOfficeData = ns.readPort(nListenPID);
|
||||||
nListenPID = ns.run("/corp/HireWorkers.js", 1, sDivisionName, sCity, JSON.stringify(oOfficeData), JSON.stringify({nWorkerNumbers: [1, 1, 1, 1, 0, 0]}));
|
nListenPID = ns.run("/corp/HireWorkers.js", 1, sDivisionName, sCity, JSON.stringify(oOfficeData), JSON.stringify({ nWorkerNumbers: [1, 1, 1, 1, 0, 0] }));
|
||||||
await ns.nextPortWrite(nListenPID);
|
await ns.nextPortWrite(nListenPID);
|
||||||
await ns.sleep(1)
|
await ns.sleep(1);
|
||||||
}
|
}
|
||||||
oCorpStatus.nStep = 50;
|
oCorpStatus.nStep = 50;
|
||||||
break;
|
break;
|
||||||
@@ -113,37 +114,43 @@ export async function main(ns) {
|
|||||||
]
|
]
|
||||||
for (let sCity of aCitites) {
|
for (let sCity of aCitites) {
|
||||||
aCurrentGoods.forEach(async (entry) => {
|
aCurrentGoods.forEach(async (entry) => {
|
||||||
|
|
||||||
nListenPID = ns.run("/corp/SetSalePrices.js", 1, sDivisionName, sCity, JSON.stringify(entry));
|
nListenPID = ns.run("/corp/SetSalePrices.js", 1, sDivisionName, sCity, JSON.stringify(entry));
|
||||||
nListenPID = ns.run("/corp/SetMaterialLimit.js", 1, sDivisionName, sCity, JSON.stringify(entry));
|
nListenPID = ns.run("/corp/SetMaterialLimit.js", 1, sDivisionName, sCity, JSON.stringify(entry));
|
||||||
|
|
||||||
ns.tprint(sCity, entry)
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
oCorpStatus.nStep = 60;
|
oCorpStatus.nStep = 60;
|
||||||
break;
|
break;
|
||||||
case 60:
|
case 60:
|
||||||
nTargetSize = 12;
|
|
||||||
for (let sCity of aCitites) {
|
for (let sCity of aCitites) {
|
||||||
nListenPID = ns.run("/corp/GetOfficeData.js", 1, sDivisionName, sCity);
|
nTargetSize = sCity === "Sector-12" ? 12 : 4;
|
||||||
await ns.nextPortWrite(nListenPID);
|
oWorkerNumbers = sCity === "Sector-12" ? { nWorkerNumbers: [2, 2, 2, 2, 2, 2] } : { nWorkerNumbers: [1, 1, 1, 1, 0, 0] }
|
||||||
await ns.sleep(1)
|
let running = true;
|
||||||
oOfficeData = ns.readPort(nListenPID);
|
while (running) {
|
||||||
await ns.nextPortWrite(ns.run("/corp/UpgradeOffice.js", 1, sDivisionName, sCity, nTargetSize, oOfficeData.size))
|
nListenPID = ns.run("/corp/GetOfficeData.js", 1, sDivisionName, sCity);
|
||||||
await ns.sleep(1)
|
await ns.nextPortWrite(nListenPID);
|
||||||
|
await ns.sleep(1);
|
||||||
|
oOfficeData = ns.readPort(nListenPID);
|
||||||
|
await ns.nextPortWrite(ns.run("/corp/UpgradeOffice.js", 1, sDivisionName, sCity, nTargetSize, oOfficeData.size));
|
||||||
|
await ns.sleep(1);
|
||||||
|
nListenPID = ns.run("/corp/GetOfficeData.js", 1, sDivisionName, sCity);
|
||||||
|
await ns.nextPortWrite(nListenPID);
|
||||||
|
await ns.sleep(1);
|
||||||
|
oNewOfficeData = ns.readPort(nListenPID);
|
||||||
|
if (oNewOfficeData.size < nTargetSize) {
|
||||||
|
await ns.sleep(10000);
|
||||||
|
ns.tprint("Waiting for money");
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
nListenPID = ns.run("/corp/HireWorkers.js", 1, sDivisionName, sCity, JSON.stringify(oOfficeData), JSON.stringify(oWorkerNumbers));
|
||||||
|
await ns.nextPortWrite(nListenPID);
|
||||||
|
await ns.sleep(1);
|
||||||
|
running = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
oCorpStatus.nStep = 70;
|
oCorpStatus.nStep = 70;
|
||||||
break;
|
break;
|
||||||
case 70:
|
case 70:
|
||||||
for (let sCity of aCitites) {
|
|
||||||
nListenPID = ns.run("/corp/GetOfficeData.js", 1, sDivisionName, sCity);
|
|
||||||
await ns.nextPortWrite(nListenPID);
|
|
||||||
await ns.sleep(1)
|
|
||||||
oOfficeData = ns.readPort(nListenPID);
|
|
||||||
nListenPID = ns.run("/corp/HireWorkers.js", 1, sDivisionName, sCity, JSON.stringify(oOfficeData), JSON.stringify({nWorkerNumbers: [2, 2, 2, 2, 2, 2]}));
|
|
||||||
await ns.nextPortWrite(nListenPID);
|
|
||||||
await ns.sleep(1)
|
|
||||||
}
|
|
||||||
oCorpStatus.nStep = 200;
|
oCorpStatus.nStep = 200;
|
||||||
break;
|
break;
|
||||||
case 80:
|
case 80:
|
||||||
|
|||||||
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);
|
||||||
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
/** @param {NS} ns */
|
/** @param {NS} ns */
|
||||||
export async function main(ns) {
|
export async function main(ns) {
|
||||||
let [sCorpName] = ns.args;
|
let [sCorpName] = ns.args;
|
||||||
ns.corporation.createCorporation(sCorpName,true)
|
ns.writePort(ns.pid, ns.corporation.createCorporation(sCorpName,false));
|
||||||
ns.writePort(ns.pid, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
/** @param {NS} ns */
|
/** @param {NS} ns */
|
||||||
export async function main(ns) {
|
export async function main(ns) {
|
||||||
ns.writePort(ns.pid,ns.corporation.getCorporation())
|
ns.writePort(ns.pid,ns.corporation.getCorporation());
|
||||||
}
|
}
|
||||||
@@ -1,12 +1,21 @@
|
|||||||
/** @param {NS} ns */
|
/** @param {NS} ns */
|
||||||
export async function main(ns) {
|
export async function main(ns) {
|
||||||
let [sDivName, sCity, oCurrentOffice] = ns.args;
|
let [sDivName, sCity, oCurrentOffice, oWorkerDistribution] = ns.args;
|
||||||
oCurrentOffice = JSON.parse(oCurrentOffice)
|
oCurrentOffice = JSON.parse(oCurrentOffice);
|
||||||
if (oCurrentOffice.numEmployees < oCurrentOffice.size) {
|
let aWorkerDistribution = JSON.parse(oWorkerDistribution).nWorkerNumbers;
|
||||||
(oCurrentOffice.employeeJobs.Operations < 1) ? ns.corporation.hireEmployee(sDivName, sCity, "Operations") : "";
|
let nTotalWorkers = 0;
|
||||||
(oCurrentOffice.employeeJobs.Engineer < 1) ? ns.corporation.hireEmployee(sDivName, sCity, "Engineer") : "";
|
const len = aWorkerDistribution.length;
|
||||||
(oCurrentOffice.employeeJobs.Business < 1) ? ns.corporation.hireEmployee(sDivName, sCity, "Business") : "";
|
for (let i = 0; i < len; i++) nTotalWorkers += aWorkerDistribution[i];
|
||||||
(oCurrentOffice.employeeJobs.Management < 1) ? ns.corporation.hireEmployee(sDivName, sCity, "Management") : "";
|
let i = 0;
|
||||||
|
while (oCurrentOffice.numEmployees < oCurrentOffice.size && oCurrentOffice.numEmployees < nTotalWorkers && i < 1) {
|
||||||
|
(oCurrentOffice.employeeJobs.Operations < aWorkerDistribution[0]) ? ns.corporation.hireEmployee(sDivName, sCity, "Operations") : "";
|
||||||
|
(oCurrentOffice.employeeJobs.Engineer < aWorkerDistribution[1]) ? ns.corporation.hireEmployee(sDivName, sCity, "Engineer") : "";
|
||||||
|
(oCurrentOffice.employeeJobs.Business < aWorkerDistribution[2]) ? ns.corporation.hireEmployee(sDivName, sCity, "Business") : "";
|
||||||
|
(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)
|
||||||
|
i += 1;
|
||||||
};
|
};
|
||||||
ns.writePort(ns.pid, true);
|
ns.writePort(ns.pid, true);
|
||||||
}
|
}
|
||||||
3
Mizzajl/home/corp/PriceCalcCheatsheet.txt
Normal file
3
Mizzajl/home/corp/PriceCalcCheatsheet.txt
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
getMaterial() -> material.marketPrice
|
||||||
|
|
||||||
|
ns.corporation.getMaterialData() -> baseMarkup
|
||||||
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);
|
||||||
|
}
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
/** @param {NS} ns */
|
|
||||||
export async function main(ns) {
|
|
||||||
ns.corporation.hasWarehouse();
|
|
||||||
}
|
|
||||||
@@ -34,11 +34,13 @@ export async function main(ns) {
|
|||||||
let nMaxThreads = 0;
|
let nMaxThreads = 0;
|
||||||
sortedList.forEach((entry) => {
|
sortedList.forEach((entry) => {
|
||||||
if (entry.rootAccess && entry.maxRam >= 1) {
|
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;
|
nMaxThreads += entry.maxRam / 1.75;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
let nMaxThreadsINT = Math.floor(nMaxThreads-32);
|
let nMaxThreadsINT = Math.floor(nMaxThreads - 64);
|
||||||
ns.print("nMaxThreadsINT = " + nMaxThreadsINT);
|
ns.print("nMaxThreadsINT = " + nMaxThreadsINT);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -60,14 +60,18 @@ export async function main(ns) {
|
|||||||
ns.print("sHost = " + sHost)
|
ns.print("sHost = " + sHost)
|
||||||
let nFreeRAM = ns.getServerMaxRam(entry.serverName) - ns.getServerUsedRam(entry.serverName);
|
let nFreeRAM = ns.getServerMaxRam(entry.serverName) - ns.getServerUsedRam(entry.serverName);
|
||||||
if (nThreads >= 1 && entry.rootAccess && nFreeRAM >= nTotalSize) {
|
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);
|
ns.exec(sScript, sHost, nThreads, sTarget, bRepeat, nMsecDelay);
|
||||||
nThreads = 0;
|
nThreads = 0;
|
||||||
nFreeRAM = ns.getServerMaxRam(entry.serverName) - ns.getServerUsedRam(entry.serverName);
|
nFreeRAM = ns.getServerMaxRam(entry.serverName) - ns.getServerUsedRam(entry.serverName);
|
||||||
}
|
}
|
||||||
else if (nThreads >= 1 && entry.rootAccess && nFreeRAM >= nScriptSize) {
|
else if (nThreads >= 1 && entry.rootAccess && nFreeRAM >= nScriptSize) {
|
||||||
let nThreadsDist = Math.floor(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.print("room for : " + nThreadsDist + " scripts");
|
||||||
ns.exec(sScript, sHost, nThreadsDist, sTarget, bRepeat, nMsecDelay);
|
ns.exec(sScript, sHost, nThreadsDist, sTarget, bRepeat, nMsecDelay);
|
||||||
nThreads -= nThreadsDist;
|
nThreads -= nThreadsDist;
|
||||||
|
|||||||
Reference in New Issue
Block a user