save backup

This commit is contained in:
zjamnik committed 2022-09-11 05:03:16 +02:00
1 parent 7b393a7ffc
commit 3529597fb0
10 files changed
+71 -9

No files matched your search

+1 -1
View File
@@ -1,6 +1,6 @@
/** @param {import(".").NS } ns */ /** @param {import(".").NS } ns */
export async function main(ns) { export async function main(ns) {
// ns.disableLog('ALL'); ns.disableLog('ALL');
async function writeLog(type, obj) { async function writeLog(type, obj) {
let timestamp = ''; let timestamp = '';
+58
View File
@@ -0,0 +1,58 @@
/** @param {import(".").NS } ns */
export async function main(ns) {
// ns.disableLog('ALL');
/**
* Recursively kill simple-hack.js running on servers in the network
* @async
* @param {string} currentServer server to scan
*/
function scanServer(currentServer, targetServer, previousServer = currentServer) {
ns.tprint(currentServer);
if (currentServer == targetServer) {
return [currentServer];
} else {
let availableServers = ns.scan(currentServer);
for (let i = 0; i < availableServers.length; ++i) {
let nextServer = availableServers[i];
if (nextServer != currentServer && nextServer != previousServer) {
let result = scanServer(nextServer, targetServer, currentServer);
if (result != null) {
return [currentServer].concat(result);
}
}
}
return null;
}
}
let targetPath = scanServer('home', ns.args[0]);
ns.tprint(targetPath);
let backdoorCommand = '';
for (let index = 1; index < targetPath.length; index++) {
const server = targetPath[index];
backdoorCommand += `connect ${server}; `;
}
backdoorCommand += 'run BruteSSH.exe; ';
backdoorCommand += 'run FTPCrack.exe; ';
backdoorCommand += 'run relaySMTP.exe; ';
backdoorCommand += 'run HTTPWorm.exe; ';
backdoorCommand += 'run SQLInject.exe; ';
backdoorCommand += 'run NUKE.exe; ';
backdoorCommand += 'backdoor; home';
ns.tprint(backdoorCommand);
const terminalInput = document.getElementById("terminal-input");
terminalInput.value = backdoorCommand;
const handler = Object.keys(terminalInput)[1];
terminalInput[handler].onChange({ target: terminalInput });
terminalInput[handler].onKeyDown({ key: 'Enter', preventDefault: () => null });
}
+4 -4
View File
@@ -1,7 +1,7 @@
/** @param {import(".").NS } ns */ /** @param {import(".").NS } ns */
export async function main(ns) { export async function main(ns) {
// ns.disableLog('ALL'); ns.disableLog('ALL');
let excludeServers = ['home']; let excludeServers = ['home'];
for (let index = 0; index < 25; index++) { for (let index = 0; index < 25; index++) {
@@ -9,7 +9,7 @@ export async function main(ns) {
} }
excludeServers.push('CSEC'); excludeServers.push('CSEC');
excludeServers.push('avmnite-02h'); excludeServers.push('avmnite-02h');
async function scanServer(currentServer, maxDepth = Number.MAX_SAFE_INTEGER, depth = 1, previousServer = currentServer) { async function scanServer(currentServer, maxDepth = Number.MAX_SAFE_INTEGER, depth = 1, previousServer = currentServer) {
if (depth <= maxDepth) { if (depth <= maxDepth) {
let availableServers = ns.scan(currentServer); let availableServers = ns.scan(currentServer);
@@ -32,11 +32,11 @@ export async function main(ns) {
} }
await ns.sleep(10); await ns.sleep(10);
} }
let runDepth = ns.args.length ? ns.args[0] : 1;
while (true) { while (true) {
let runDepth = ns.args.length ? ns.args[0] : 1; ns.print(`Running scan depth: ${runDepth}`);
ns.tprint(`Running scan depth: ${runDepth}`);
await scanServer('home', runDepth); await scanServer('home', runDepth);
} }
} }
+2 -1
View File
@@ -9,6 +9,7 @@ export async function main(ns) {
let levelCap = 150; let levelCap = 150;
let ramCap = 64; let ramCap = 64;
let coreCap = 4; let coreCap = 4;
let nodeCap = 15;
ns.tprint(`Bot started {nodeCostThreshold: ${nodeCostThreshold}, upgradeCostThreshold: ${upgradeCostThreshold}, upgradeCount: ${upgradeCount}}`); ns.tprint(`Bot started {nodeCostThreshold: ${nodeCostThreshold}, upgradeCostThreshold: ${upgradeCostThreshold}, upgradeCount: ${upgradeCount}}`);
while (true) { while (true) {
@@ -16,7 +17,7 @@ export async function main(ns) {
let nodePurchaseCost = ns.hacknet.getPurchaseNodeCost(); let nodePurchaseCost = ns.hacknet.getPurchaseNodeCost();
let nodeCount = ns.hacknet.numNodes(); let nodeCount = ns.hacknet.numNodes();
if (nodePurchaseCost / Math.abs(currentMoney) < nodeCostThreshold) { if (nodeCount < nodeCap && nodePurchaseCost / Math.abs(currentMoney) < nodeCostThreshold) {
ns.hacknet.purchaseNode(); ns.hacknet.purchaseNode();
currentMoney = ns.getServerMoneyAvailable("home"); currentMoney = ns.getServerMoneyAvailable("home");
++nodeCount; ++nodeCount;
Vendored
+1 -1
View File
@@ -461,7 +461,7 @@
export interface Server { export interface Server {
/** /**
* How many CPU cores this server has. Maximum of 8. * How many CPU cores this server has. Maximum of 8.
* Affects magnitude of grow and weaken. * Affects magnitude of grow and weaken.p
*/ */
cpuCores: number; cpuCores: number;
@@ -0,0 +1 @@
eyJjdG9yIjoiQml0YnVybmVyU2F2ZU9iamVjdCIsImRhdGEiOnsiUGxheWVyU2F2ZSI6IntcImN0b3JcIjpcIlBsYXllck9iamVjdFwiLFwiZGF0YVwiOntcImhwXCI6e1wiY3VycmVudFwiOjI3LFwibWF4XCI6Mjd9LFwic2tpbGxzXCI6e1wiaGFja2luZ1wiOjI3NSxcInN0cmVuZ3RoXCI6MTc1LFwiZGVmZW5zZVwiOjE3NSxcImRleHRlcml0eVwiOjE4MyxcImFnaWxpdHlcIjoxODMsXCJjaGFyaXNtYVwiOjE3NSxcImludGVsbGlnZW5jZVwiOjB9LFwiZXhwXCI6e1wiaGFja2luZ1wiOjE3MDkxMjkuODc5MzMyNTYxLFwic3RyZW5ndGhcIjo4OTU2NC41NDIyNDYxMTQ5NyxcImRlZmVuc2VcIjo4OTU1Ny4wNjkxMzQ0ODc5MyxcImRleHRlcml0eVwiOjg5NTU3LjA2OTEzNDQ4NzkzLFwiYWdpbGl0eVwiOjg5NTU3LjA2OTEzNDQ4NzkzLFwiY2hhcmlzbWFcIjo4OTQ3Ni40OTk2NDk3NTg4NixcImludGVsbGlnZW5jZVwiOjB9LFwibXVsdHNcIjp7XCJoYWNraW5nX2NoYW5jZVwiOjEuMDYxNTIxNTM3OTM1MDIxNCxcImhhY2tpbmdfc3BlZWRcIjoxLjA5MzM2NzE4NDA3MzA3MjUsXCJoYWNraW5nX21vbmV5XCI6MS4wNjE1MjE1Mzc5MzUwMjE0LFwiaGFja2luZ19ncm93XCI6MS4wNjE1MjE1Mzc5MzUwMjE0LFwiaGFja2luZ1wiOjEuMDYxNTIxNTM3OTM1MDIxNCxcInN0cmVuZ3RoXCI6MS4wNjE1MjE1Mzc5MzUwMjE0LFwiZGVmZW5zZVwiOjEuMDYxNTIxNTM3OTM1MDIxNCxcImRleHRlcml0eVwiOjEuMTE0NTk3NjE0ODMxNzcyNCxcImFnaWxpdHlcIjoxLjExNDU5NzYxNDgzMTc3MjQsXCJjaGFyaXNtYVwiOjEuMDYxNTIxNTM3OTM1MDIxNCxcImhhY2tpbmdfZXhwXCI6MS4xNjc2NzM2OTE3Mjg1MjM4LFwic3RyZW5ndGhfZXhwXCI6MS4xNjc2NzM2OTE3Mjg1MjM4LFwiZGVmZW5zZV9leHBcIjoxLjE2NzY3MzY5MTcyODUyMzgsXCJkZXh0ZXJpdHlfZXhwXCI6MS4xNjc2NzM2OTE3Mjg1MjM4LFwiYWdpbGl0eV9leHBcIjoxLjE2NzY3MzY5MTcyODUyMzgsXCJjaGFyaXNtYV9leHBcIjoxLjE2NzY3MzY5MTcyODUyMzgsXCJjb21wYW55X3JlcFwiOjEuMDYxNTIxNTM3OTM1MDIxNCxcImZhY3Rpb25fcmVwXCI6MS4wNjE1MjE1Mzc5MzUwMjE0LFwiY3JpbWVfbW9uZXlcIjoxLjA2MTUyMTUzNzkzNTAyMTQsXCJjcmltZV9zdWNjZXNzXCI6MS4wNjE1MjE1Mzc5MzUwMjE0LFwiaGFja25ldF9ub2RlX21vbmV5XCI6MS4xNjc2NzM2OTE3Mjg1MjM1LFwiaGFja25ldF9ub2RlX3B1cmNoYXNlX2Nvc3RcIjowLjg0NzgzOTYwMzY2MDU4MTYsXCJoYWNrbmV0X25vZGVfcmFtX2Nvc3RcIjowLjk0MjA0NDAwNDA2NzMxMjksXCJoYWNrbmV0X25vZGVfY29yZV9jb3N0XCI6MC45NDIwNDQwMDQwNjczMTI5LFwiaGFja25ldF9ub2RlX2xldmVsX2Nvc3RcIjowLjk0MjA0NDAwNDA2NzMxMjksXCJ3b3JrX21vbmV5XCI6MS4wNjE1MjE1Mzc5MzUwMjE0LFwiYmxhZGVidXJuZXJfbWF4X3N0YW1pbmFcIjoxLFwiYmxhZGVidXJuZXJfc3RhbWluYV9nYWluXCI6MSxcImJsYWRlYnVybmVyX2FuYWx5c2lzXCI6MSxcImJsYWRlYnVybmVyX3N1Y2Nlc3NfY2hhbmNlXCI6MX0sXCJtb25leVwiOjY0MDYxMzY2OS44NzM0ODI3LFwiY2l0eVwiOlwiU2VjdG9yLTEyXCIsXCJsb2NhdGlvblwiOlwiQWxwaGEgRW50ZXJwcmlzZXNcIixcImpvYnNcIjp7fSxcImN1cnJlbnRTZXJ2ZXJcIjpcImhvbWVcIixcInB1cmNoYXNlZFNlcnZlcnNcIjpbXCJob21lLTBcIixcImhvbWUtMVwiLFwiaG9tZS0yXCIsXCJob21lLTNcIixcImhvbWUtNFwiLFwiaG9tZS01XCIsXCJob21lLTZcIixcImhvbWUtN1wiLFwiaG9tZS04XCIsXCJob21lLTlcIixcImhvbWUtMTBcIixcImhvbWUtMTFcIixcImhvbWUtMTJcIixcImhvbWUtMTNcIixcImhvbWUtMTRcIixcImhvbWUtMTVcIixcImhvbWUtMTZcIixcImhvbWUtMTdcIixcImhvbWUtMThcIixcImhvbWUtMTlcIixcImhvbWUtMjBcIixcImhvbWUtMjFcIixcImhvbWUtMjJcIixcImhvbWUtMjNcIixcImhvbWUtMjRcIl0sXCJoYWNrbmV0Tm9kZXNcIjpbe1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjQsXCJsZXZlbFwiOjE5NyxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjo0NTIwLjc2ODU4ODE2NDQzNSxcIm9ubGluZVRpbWVTZWNvbmRzXCI6ODU1MjcuNTk5OTk5MzUwOTgsXCJyYW1cIjo2NCxcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjoxNDk2Njk0OTQuNjcyODQ1NSxcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS0wXCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6NCxcImxldmVsXCI6MTk3LFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjQ1MjAuNzY4NTg4MTY0NDM1LFwib25saW5lVGltZVNlY29uZHNcIjo4NDY4Mi4xOTk5OTkzNjMyOSxcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjE0OTMwNjMyNC43ODAwOTg1MyxcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS0xXCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6NCxcImxldmVsXCI6MTk3LFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjQ1MjAuNzY4NTg4MTY0NDM1LFwib25saW5lVGltZVNlY29uZHNcIjo4MzY4My4zOTk5OTkzNjcxMyxcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjE0ODk1NDc4My4zNTI3Njg0OCxcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS0yXCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6NCxcImxldmVsXCI6MTk3LFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjQ1MjAuNzY4NTg4MTY0NDM1LFwib25saW5lVGltZVNlY29uZHNcIjo4MjYzMi43OTk5OTkzODI2MixcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjE0ODc1MTE0MC4yMTI4MjM3OCxcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS0zXCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6NCxcImxldmVsXCI6MTk3LFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjQ1MjAuNzY4NTg4MTY0NDM1LFwib25saW5lVGltZVNlY29uZHNcIjo4MTQ4My41OTk5OTkzOTkzNSxcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjE0ODMyMzYyNy40MTkwMDcxOCxcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS00XCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6NCxcImxldmVsXCI6MTk3LFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjQ1MjAuNzY4NTg4MTY0NDM1LFwib25saW5lVGltZVNlY29uZHNcIjo4MDI2Ny41OTk5OTk0MTcwNCxcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjE0Nzg4MTI5Ni4wNTU1NDkzLFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTVcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjo0LFwibGV2ZWxcIjoxOTYsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6NDQ5Ny44MjA1MjQyNjUxMjIsXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjc5NjgxLjk5OTk5OTQyNTU2LFwicmFtXCI6NjQsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6MTQ3MDI2MjI2LjI1MTE2NDIzLFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTZcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjo0LFwibGV2ZWxcIjoxOTYsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6NDQ5Ny44MjA1MjQyNjUxMjIsXCJvbmxpbmVUaW1Line truncated
@@ -0,0 +1 @@
eyJjdG9yIjoiQml0YnVybmVyU2F2ZU9iamVjdCIsImRhdGEiOnsiUGxheWVyU2F2ZSI6IntcImN0b3JcIjpcIlBsYXllck9iamVjdFwiLFwiZGF0YVwiOntcImhwXCI6e1wiY3VycmVudFwiOjI3LFwibWF4XCI6Mjd9LFwic2tpbGxzXCI6e1wiaGFja2luZ1wiOjI3NixcInN0cmVuZ3RoXCI6MTc1LFwiZGVmZW5zZVwiOjE3NSxcImRleHRlcml0eVwiOjE4NCxcImFnaWxpdHlcIjoxODQsXCJjaGFyaXNtYVwiOjE3NixcImludGVsbGlnZW5jZVwiOjB9LFwiZXhwXCI6e1wiaGFja2luZ1wiOjE3NzU0NDIuMDY4Mjg1ODEsXCJzdHJlbmd0aFwiOjg5NTY0LjU0MjI0NjExNDk3LFwiZGVmZW5zZVwiOjg5NTU3LjA2OTEzNDQ4NzkzLFwiZGV4dGVyaXR5XCI6OTE2OTMuMDY5MTM0NDg3OTMsXCJhZ2lsaXR5XCI6OTE2OTMuMDY5MTM0NDg3OTMsXCJjaGFyaXNtYVwiOjkzNzQ4LjQ5OTY0OTc1ODg2LFwiaW50ZWxsaWdlbmNlXCI6MH0sXCJtdWx0c1wiOntcImhhY2tpbmdfY2hhbmNlXCI6MS4wNjE1MjE1Mzc5MzUwMjE0LFwiaGFja2luZ19zcGVlZFwiOjEuMDkzMzY3MTg0MDczMDcyNSxcImhhY2tpbmdfbW9uZXlcIjoxLjA2MTUyMTUzNzkzNTAyMTQsXCJoYWNraW5nX2dyb3dcIjoxLjA2MTUyMTUzNzkzNTAyMTQsXCJoYWNraW5nXCI6MS4wNjE1MjE1Mzc5MzUwMjE0LFwic3RyZW5ndGhcIjoxLjA2MTUyMTUzNzkzNTAyMTQsXCJkZWZlbnNlXCI6MS4wNjE1MjE1Mzc5MzUwMjE0LFwiZGV4dGVyaXR5XCI6MS4xMTQ1OTc2MTQ4MzE3NzI0LFwiYWdpbGl0eVwiOjEuMTE0NTk3NjE0ODMxNzcyNCxcImNoYXJpc21hXCI6MS4wNjE1MjE1Mzc5MzUwMjE0LFwiaGFja2luZ19leHBcIjoxLjE2NzY3MzY5MTcyODUyMzgsXCJzdHJlbmd0aF9leHBcIjoxLjE2NzY3MzY5MTcyODUyMzgsXCJkZWZlbnNlX2V4cFwiOjEuMTY3NjczNjkxNzI4NTIzOCxcImRleHRlcml0eV9leHBcIjoxLjE2NzY3MzY5MTcyODUyMzgsXCJhZ2lsaXR5X2V4cFwiOjEuMTY3NjczNjkxNzI4NTIzOCxcImNoYXJpc21hX2V4cFwiOjEuMTY3NjczNjkxNzI4NTIzOCxcImNvbXBhbnlfcmVwXCI6MS4wNjE1MjE1Mzc5MzUwMjE0LFwiZmFjdGlvbl9yZXBcIjoxLjA2MTUyMTUzNzkzNTAyMTQsXCJjcmltZV9tb25leVwiOjEuMDYxNTIxNTM3OTM1MDIxNCxcImNyaW1lX3N1Y2Nlc3NcIjoxLjA2MTUyMTUzNzkzNTAyMTQsXCJoYWNrbmV0X25vZGVfbW9uZXlcIjoxLjE2NzY3MzY5MTcyODUyMzUsXCJoYWNrbmV0X25vZGVfcHVyY2hhc2VfY29zdFwiOjAuODQ3ODM5NjAzNjYwNTgxNixcImhhY2tuZXRfbm9kZV9yYW1fY29zdFwiOjAuOTQyMDQ0MDA0MDY3MzEyOSxcImhhY2tuZXRfbm9kZV9jb3JlX2Nvc3RcIjowLjk0MjA0NDAwNDA2NzMxMjksXCJoYWNrbmV0X25vZGVfbGV2ZWxfY29zdFwiOjAuOTQyMDQ0MDA0MDY3MzEyOSxcIndvcmtfbW9uZXlcIjoxLjA2MTUyMTUzNzkzNTAyMTQsXCJibGFkZWJ1cm5lcl9tYXhfc3RhbWluYVwiOjEsXCJibGFkZWJ1cm5lcl9zdGFtaW5hX2dhaW5cIjoxLFwiYmxhZGVidXJuZXJfYW5hbHlzaXNcIjoxLFwiYmxhZGVidXJuZXJfc3VjY2Vzc19jaGFuY2VcIjoxfSxcIm1vbmV5XCI6MjEwOTI2NjIuNjU3NTk0ODcsXCJjaXR5XCI6XCJWb2xoYXZlblwiLFwibG9jYXRpb25cIjpcIkNvbXB1VGVrXCIsXCJqb2JzXCI6e30sXCJjdXJyZW50U2VydmVyXCI6XCJob21lXCIsXCJwdXJjaGFzZWRTZXJ2ZXJzXCI6W1wiaG9tZS0wXCIsXCJob21lLTFcIixcImhvbWUtMlwiLFwiaG9tZS0zXCIsXCJob21lLTRcIixcImhvbWUtNVwiLFwiaG9tZS02XCIsXCJob21lLTdcIixcImhvbWUtOFwiLFwiaG9tZS05XCIsXCJob21lLTEwXCIsXCJob21lLTExXCIsXCJob21lLTEyXCIsXCJob21lLTEzXCIsXCJob21lLTE0XCIsXCJob21lLTE1XCIsXCJob21lLTE2XCIsXCJob21lLTE3XCIsXCJob21lLTE4XCIsXCJob21lLTE5XCIsXCJob21lLTIwXCIsXCJob21lLTIxXCIsXCJob21lLTIyXCIsXCJob21lLTIzXCIsXCJob21lLTI0XCJdLFwiaGFja25ldE5vZGVzXCI6W3tcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjo0LFwibGV2ZWxcIjoxOTcsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6NDUyMC43Njg1ODgxNjQ0MzUsXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjg4Mzc0LjM5OTk5OTMwOTYyLFwicmFtXCI6NjQsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6MTYyNTM5MjE4LjY4OTY5MTMzLFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTBcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjo0LFwibGV2ZWxcIjoxOTcsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6NDUyMC43Njg1ODgxNjQ0MzUsXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjg3NTI4Ljk5OTk5OTMyMTk0LFwicmFtXCI6NjQsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6MTYyMTc2MDQ4Ljc5Njk0NDM1LFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTFcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjo0LFwibGV2ZWxcIjoxOTcsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6NDUyMC43Njg1ODgxNjQ0MzUsXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjg2NTMwLjE5OTk5OTMyNTc4LFwicmFtXCI6NjQsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6MTYxODI0NTA3LjM2OTYxNDMsXCJuYW1lXCI6XCJoYWNrbmV0LW5vZGUtMlwifX0se1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjQsXCJsZXZlbFwiOjE5NyxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjo0NTIwLjc2ODU4ODE2NDQzNSxcIm9ubGluZVRpbWVTZWNvbmRzXCI6ODU0NzkuNTk5OTk5MzQxMjcsXCJyYW1cIjo2NCxcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjoxNjE2MjA4NjQuMjI5NjY5NixcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS0zXCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6NCxcImxldmVsXCI6MTk3LFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjQ1MjAuNzY4NTg4MTY0NDM1LFwib25saW5lVGltZVNlY29uZHNcIjo4NDMzMC4zOTk5OTkzNTgsXCJyYW1cIjo2NCxcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjoxNjExOTMzNTEuNDM1ODUzLFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTRcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjo0LFwibGV2ZWxcIjoxOTcsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6NDUyMC43Njg1ODgxNjQ0MzUsXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjgzMTE0LjM5OTk5OTM3NTY5LFwicmFtXCI6NjQsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6MTYwNzUxMDIwLjA3MjM5NTEyLFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTVcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjo0LFwibGV2ZWxcIjoxOTYsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6NDQ5Ny44MjA1MjQyNjUxMjIsXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjgyNTI4Ljc5OTk5OTM4NDIxLFwicmFtXCI6NjQsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6MTU5ODMwNjIxLjcxOTY3MTEsXCJuYW1lXCI6XCJoYWNrbmV0LW5vZGUtNlwifX0se1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjQsXCJsZXZlbFwiOjE5NixcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjo0NDk3LjgyMDUyNDI2NTEyMixcIm9ubGluZVRpbWVTZWNvbmRzXCI6ODE1MzELine truncated
+1 -1
View File
@@ -1,7 +1,7 @@
/** @param {import(".").NS } ns */ /** @param {import(".").NS } ns */
export async function main(ns) { export async function main(ns) {
// ns.disableLog('ALL'); ns.disableLog('ALL');
async function writeLog(obj) { async function writeLog(obj) {
await ns.tryWritePort(1, obj + '\n'); await ns.tryWritePort(1, obj + '\n');
+2 -1
View File
@@ -1,9 +1,10 @@
/** @param {import(".").NS } ns */ /** @param {import(".").NS } ns */
export async function main(ns) { export async function main(ns) {
// ns.disableLog('ALL'); ns.disableLog('ALL');
for (let server = 0; server <= ns.args[0]; server++) { for (let server = 0; server <= ns.args[0]; server++) {
ns.scp('grow-helper.js', `home-${server}`, 'home');
ns.exec('grow-helper.js', `home-${server}`, 5, 20); ns.exec('grow-helper.js', `home-${server}`, 5, 20);
} }
} }