mizzajl sync
This commit is contained in:
52
local/path/home/singularity/RMroutelist.js
Normal file
52
local/path/home/singularity/RMroutelist.js
Normal file
@@ -0,0 +1,52 @@
|
||||
/** @param {NS} ns */
|
||||
export async function main(ns) {
|
||||
ns.tail();
|
||||
let serverRoutes = await scanRecursiveWrapper(ns);
|
||||
let currentHackingLevel = ns.getHackingLevel();
|
||||
let currentArray = [];
|
||||
let currentHop = "";
|
||||
|
||||
for (const [name, entry] of Object.entries(serverRoutes)) {
|
||||
if (ns.getServerRequiredHackingLevel(name) < currentHackingLevel && ns.hasRootAccess(name) === true) {
|
||||
currentArray = entry;
|
||||
if (entry.length > 0) {
|
||||
while (currentArray.length > 0) {
|
||||
currentHop = currentArray.shift();
|
||||
if (ns.singularity.connect(currentHop) === false) ns.tprint("Error when trying to connect to: " + currentHop);
|
||||
}
|
||||
ns.tprint("Trying to backdoor " + currentHop)
|
||||
await ns.singularity.installBackdoor(currentHop);
|
||||
ns.tprint("Success on " + currentHop)
|
||||
ns.singularity.connect("home");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** @param {NS} ns */
|
||||
async function scanRecursiveWrapper(ns) {
|
||||
let startTime = Date.now();
|
||||
ns.rm("ServerRouteList.txt");
|
||||
await scanRecursive(ns, [], "home", startTime);
|
||||
let result = JSON.parse("[" + ns.read("ServerRouteList.txt") + "{}]").reduce((acc, obj) => ({ ...acc, ...obj }), {});
|
||||
ns.write("ServerRouteList.txt", JSON.stringify(result, "w"));
|
||||
return result;
|
||||
}
|
||||
|
||||
/** @param {NS} ns */
|
||||
async function scanRecursive(ns, parents, currentServer, startTime) {
|
||||
let currentTime = Date.now();
|
||||
if (currentTime > startTime + 5) {
|
||||
return
|
||||
} else {
|
||||
let currentChildren = ns.scan(currentServer);
|
||||
let parentsSet = new Set(parents);
|
||||
let cleanedChildren = currentChildren.filter(element => !parentsSet.has(element));
|
||||
let tempServername = String(currentServer);
|
||||
ns.write("ServerRouteList.txt", JSON.stringify({ [tempServername]: parents }) + ",", "a");
|
||||
parents.push(currentServer);
|
||||
for (let child in cleanedChildren) {
|
||||
await scanRecursive(ns, parents, cleanedChildren[child], startTime)
|
||||
}
|
||||
}
|
||||
}
|
||||
71
local/path/home/singularity/manualalgo.js
Normal file
71
local/path/home/singularity/manualalgo.js
Normal file
@@ -0,0 +1,71 @@
|
||||
/** @param {NS} ns */
|
||||
export async function main(ns) {
|
||||
const sNode = ns.args[0]; // target server
|
||||
|
||||
//logs
|
||||
ns.disableLog("getServerSecurityLevel");
|
||||
ns.disableLog("getServerMoneyAvailable");
|
||||
|
||||
//server info
|
||||
const nMinSec = ns.getServerMinSecurityLevel(sNode);
|
||||
const nMaxCash = ns.getServerMaxMoney(sNode);
|
||||
while (true) {
|
||||
|
||||
//timestamp
|
||||
let currentDate = new Date();
|
||||
let ntimeStamp = currentDate.toLocaleTimeString('sw-SV') + " -";
|
||||
|
||||
const nCurrSec = ns.getServerSecurityLevel(sNode);
|
||||
const nCurrCash = ns.getServerMoneyAvailable(sNode);
|
||||
|
||||
ns.print(ntimeStamp + "---------------------------------------------------------------");
|
||||
ns.print("Cash: " + (Math.floor(nCurrCash * 1000) / 1000) + " / " + nMaxCash);
|
||||
ns.print("Security: " + (Math.floor(nCurrSec * 1000) / 1000) + " / " + nMinSec);
|
||||
|
||||
if (nCurrSec > (nMinSec + 1)) {
|
||||
|
||||
//Calculate estimate time of completion
|
||||
let nOffset = ns.getWeakenTime(sNode);
|
||||
let nWeakTime = new Date(currentDate.getTime() + nOffset);
|
||||
let sWeakTime = nWeakTime.toLocaleTimeString('sw-SV');
|
||||
|
||||
//Print estimated time of completion
|
||||
ns.print("Weakening " + sNode + " Estimated complete at " + sWeakTime);
|
||||
|
||||
//run weaken
|
||||
await ns.weaken(sNode);
|
||||
ns.print("-------------------------------------------------------------------------");
|
||||
}
|
||||
else if (nCurrCash < (nMaxCash * 0.9)) {
|
||||
|
||||
//Calculate estimate time of completion
|
||||
let nOffset = ns.getGrowTime(sNode);
|
||||
let nGrowTime = new Date(currentDate.getTime() + nOffset);
|
||||
let sGrowTime = nGrowTime.toLocaleTimeString('sw-SV');
|
||||
|
||||
//Print estimated time of completion
|
||||
ns.print("Growing " + sNode + " Estimated complete at " + sGrowTime);
|
||||
|
||||
//run grow
|
||||
await ns.grow(sNode);
|
||||
ns.print("-------------------------------------------------------------------------");
|
||||
}
|
||||
else {
|
||||
|
||||
|
||||
//Calculate estimate time of completion
|
||||
let nOffset = ns.getHackTime(sNode);
|
||||
let nHackTime = new Date(currentDate.getTime() + nOffset);
|
||||
let sHackTime = nHackTime.toLocaleTimeString('sw-SV');
|
||||
|
||||
|
||||
//Print estimated time of completion
|
||||
ns.print("Hacking " + sNode + " Estimated complete at " + sHackTime);
|
||||
|
||||
//run hack
|
||||
//await ns.hack(sNode);
|
||||
await ns.singularity.manualHack();
|
||||
ns.print("-------------------------------------------------------------------------");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user