cleanup, download lit, log function
This commit is contained in:
1 parent
3529597fb0
commit
2963efd97b
13 files changed
+92
-52
No files matched your search
Vendored
+20
-4
@@ -32,10 +32,6 @@
|
||||
"",
|
||||
"export async function main(ns) {",
|
||||
" // ns.disableLog('ALL');",
|
||||
"",
|
||||
" async function writeLog(obj) {",
|
||||
" await ns.tryWritePort($1, obj + '\\n');",
|
||||
" }",
|
||||
" ",
|
||||
" $2",
|
||||
"}"
|
||||
@@ -60,6 +56,26 @@
|
||||
],
|
||||
"description": "NS terminal print"
|
||||
},
|
||||
"writelog": {
|
||||
"scope": "",
|
||||
"prefix": "writelog",
|
||||
"body": [
|
||||
"async function writeLog(type, obj) {",
|
||||
" let timeNow = new Date();",
|
||||
" let year = timeNow.getFullYear().toString().substring(2);",
|
||||
" let month = (timeNow.getMonth() < 9 ? '0' : '') + (timeNow.getMonth() + 1);",
|
||||
" let day = (timeNow.getDate() < 10 ? '0' : '') + timeNow.getDate();",
|
||||
" let hour = (timeNow.getHours() < 10 ? '0' : '') + timeNow.getHours();",
|
||||
" let minute = (timeNow.getMinutes() < 10 ? '0' : '') + timeNow.getMinutes();",
|
||||
" let second = (timeNow.getSeconds() < 10 ? '0' : '') + timeNow.getSeconds();",
|
||||
" let timestamp = `\\${year}\\${month}\\${day}_\\${hour}\\${minute}\\${second}`;",
|
||||
" await ns.tryWritePort($1, `t\\${timestamp}_\\${type} = \\${obj};\\n`);",
|
||||
" ",
|
||||
" if (['ERROR', 'TERMINAL'].indexOf(type) != -1) ns.tprint(`\\${timestamp} \\${type} = \\${obj}`);",
|
||||
"}"
|
||||
],
|
||||
"description": "writelog function definition"
|
||||
},
|
||||
"log": {
|
||||
"scope": "",
|
||||
"prefix": "log",
|
||||
|
||||
+14
-13
@@ -3,7 +3,14 @@ export async function main(ns) {
|
||||
ns.disableLog('ALL');
|
||||
|
||||
async function writeLog(type, obj) {
|
||||
let timestamp = '';
|
||||
let timeNow = new Date();
|
||||
let year = timeNow.getFullYear().toString().substring(2);
|
||||
let month = (timeNow.getMonth() < 9 ? '0' : '') + (timeNow.getMonth() + 1);
|
||||
let day = (timeNow.getDate() < 10 ? '0' : '') + timeNow.getDate();
|
||||
let hour = (timeNow.getHours() < 10 ? '0' : '') + timeNow.getHours();
|
||||
let minute = (timeNow.getMinutes() < 10 ? '0' : '') + timeNow.getMinutes();
|
||||
let second = (timeNow.getSeconds() < 10 ? '0' : '') + timeNow.getSeconds();
|
||||
let timestamp = `${year}${month}${day}_${hour}${minute}${second}`;
|
||||
await ns.tryWritePort(2, `t${timestamp}_${type} = ${obj};\n`);
|
||||
|
||||
if (['ERROR', 'TERMINAL'].indexOf(type) != -1) ns.tprint(`${timestamp} ${type} = ${obj}`);
|
||||
@@ -180,8 +187,7 @@ export async function main(ns) {
|
||||
* @async
|
||||
* @param {string} currentServer server to scan
|
||||
*/
|
||||
async function scanServer(currentServer, maxDepth = Number.MAX_SAFE_INTEGER, depth = 1, previousServer = currentServer) {
|
||||
if (depth <= maxDepth) {
|
||||
async function scanServer(currentServer, previousServer = currentServer) {
|
||||
let availableServers = ns.scan(currentServer);
|
||||
|
||||
for (let i = 0; i < availableServers.length; ++i) {
|
||||
@@ -205,24 +211,19 @@ export async function main(ns) {
|
||||
}
|
||||
}
|
||||
}
|
||||
await scanServer(nextServer, maxDepth, depth + 1, currentServer);
|
||||
await scanServer(nextServer, currentServer);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
await ns.sleep(10);
|
||||
}
|
||||
|
||||
let runDepth = ns.args.length ? ns.args[0] : 1;
|
||||
|
||||
ns.write('nuke-log.js', '', 'w');
|
||||
if (!ns.scriptRunning('simple-hack.js', 'n00dles')) ns.write('hack-log.js', '', 'w');
|
||||
ns.tprint(`TERMINAL = "Running scan depth: ${runDepth}"`);
|
||||
ns.tprint(`TERMINAL = "Running scan"`);
|
||||
|
||||
while (true) {
|
||||
await writeLog('INFO', `"Running scan depth: ${runDepth}"`);
|
||||
await scanServer('home',);
|
||||
await ns.sleep(600000);
|
||||
await writeLog('INFO', `"Running scan"`);
|
||||
await scanServer('home');
|
||||
await ns.sleep(60000);
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,4 @@ export async function main(ns) {
|
||||
ns.tprint(`Exec 'grow-helper.js' exit code: ${execExitCode}`);
|
||||
}
|
||||
}
|
||||
|
||||
await ns.sleep(10);
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
/** @param {import(".").NS } ns */
|
||||
|
||||
export async function main(ns) {
|
||||
// ns.disableLog('ALL');
|
||||
|
||||
function scanServer(currentServer, previousServer = currentServer) {
|
||||
// ns.tprint(currentServer);
|
||||
let availableServers = ns.scan(currentServer);
|
||||
|
||||
for (let i = 0; i < availableServers.length; ++i) {
|
||||
let nextServer = availableServers[i];
|
||||
|
||||
if (nextServer != currentServer && nextServer != previousServer) {
|
||||
let litFiles = ns.ls(nextServer, 'lit');
|
||||
ns.tprint(`Download from '${nextServer}': ${litFiles}`);
|
||||
if (ns.args[0] && litFiles.length) {
|
||||
ns.scp(litFiles, 'home', nextServer);
|
||||
}
|
||||
|
||||
scanServer(nextServer, currentServer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scanServer('home');
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
CyberSec
|
||||
Netburners
|
||||
+4
-9
@@ -1,7 +1,7 @@
|
||||
/** @param {import(".").NS } ns */
|
||||
|
||||
export async function main(ns) {
|
||||
ns.disableLog('ALL');
|
||||
// ns.disableLog('ALL');
|
||||
|
||||
let excludeServers = ['home'];
|
||||
for (let index = 0; index < 25; index++) {
|
||||
@@ -10,8 +10,7 @@ export async function main(ns) {
|
||||
excludeServers.push('CSEC');
|
||||
excludeServers.push('avmnite-02h');
|
||||
|
||||
async function scanServer(currentServer, maxDepth = Number.MAX_SAFE_INTEGER, depth = 1, previousServer = currentServer) {
|
||||
if (depth <= maxDepth) {
|
||||
async function scanServer(currentServer, previousServer = currentServer) {
|
||||
let availableServers = ns.scan(currentServer);
|
||||
|
||||
for (let i = 0; i < availableServers.length; ++i) {
|
||||
@@ -30,13 +29,9 @@ export async function main(ns) {
|
||||
}
|
||||
}
|
||||
}
|
||||
await ns.sleep(10);
|
||||
}
|
||||
let runDepth = ns.args.length ? ns.args[0] : 1;
|
||||
|
||||
while (true) {
|
||||
|
||||
ns.print(`Running scan depth: ${runDepth}`);
|
||||
await scanServer('home', runDepth);
|
||||
ns.print(`Running scan`);
|
||||
await scanServer('home');
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -9,7 +9,7 @@ export async function main(ns) {
|
||||
let levelCap = 150;
|
||||
let ramCap = 64;
|
||||
let coreCap = 4;
|
||||
let nodeCap = 15;
|
||||
let nodeCap = 18;
|
||||
ns.tprint(`Bot started {nodeCostThreshold: ${nodeCostThreshold}, upgradeCostThreshold: ${upgradeCostThreshold}, upgradeCount: ${upgradeCount}}`);
|
||||
|
||||
while (true) {
|
||||
@@ -62,6 +62,6 @@ export async function main(ns) {
|
||||
if (portData != 'NULL PORT DATA') ns.write(logFile, portData, 'a');
|
||||
}
|
||||
|
||||
await ns.sleep(10);
|
||||
await ns.sleep(50);
|
||||
}
|
||||
}
|
||||
+5
-15
@@ -15,8 +15,7 @@ export async function main(ns) {
|
||||
* @async
|
||||
* @param {string} currentServer server to scan
|
||||
*/
|
||||
async function scanServer(currentServer, maxDepth = Number.MAX_SAFE_INTEGER, depth = 1, previousServer = currentServer) {
|
||||
if (depth <= maxDepth) {
|
||||
function scanServer(currentServer, previousServer = currentServer) {
|
||||
let availableServers = ns.scan(currentServer);
|
||||
|
||||
for (let i = 0; i < availableServers.length; ++i) {
|
||||
@@ -24,20 +23,11 @@ export async function main(ns) {
|
||||
|
||||
if (nextServer != currentServer && nextServer != previousServer) {
|
||||
if (excludeServers.indexOf(nextServer) == -1) ns.scriptKill('simple-hack.js', nextServer);
|
||||
await scanServer(nextServer, maxDepth, depth + 1, currentServer);
|
||||
scanServer(nextServer, currentServer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
await ns.sleep(10);
|
||||
}
|
||||
|
||||
|
||||
let runDepth = ns.args.length ? ns.args[0] : 1;
|
||||
ns.tprint(`Running scan depth: ${runDepth}`);
|
||||
await scanServer('home', runDepth);
|
||||
|
||||
|
||||
await ns.sleep(10);
|
||||
ns.tprint(`Running scan`);
|
||||
scanServer('home');
|
||||
}
|
||||
@@ -4,5 +4,4 @@ export async function main(ns) {
|
||||
ns.disableLog('ALL');
|
||||
|
||||
ns.scriptKill('hacknet-bot.js', 'home');
|
||||
await ns.sleep(10);
|
||||
}
|
||||
@@ -4,5 +4,4 @@ export async function main(ns) {
|
||||
ns.disableLog('ALL');
|
||||
|
||||
ns.scriptKill('auto-nuke.js', 'home');
|
||||
await ns.sleep(10);
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
eyJjdG9yIjoiQml0YnVybmVyU2F2ZU9iamVjdCIsImRhdGEiOnsiUGxheWVyU2F2ZSI6IntcImN0b3JcIjpcIlBsYXllck9iamVjdFwiLFwiZGF0YVwiOntcImhwXCI6e1wiY3VycmVudFwiOjEwLFwibWF4XCI6MTB9LFwic2tpbGxzXCI6e1wiaGFja2luZ1wiOjMzNSxcInN0cmVuZ3RoXCI6ODcsXCJkZWZlbnNlXCI6MSxcImRleHRlcml0eVwiOjEsXCJhZ2lsaXR5XCI6MSxcImNoYXJpc21hXCI6MSxcImludGVsbGlnZW5jZVwiOjB9LFwiZXhwXCI6e1wiaGFja2luZ1wiOjIyMzc5MjguODM0NDIwODYwMyxcInN0cmVuZ3RoXCI6NjI4OC4xNTYzNjQ2OTcxMTIsXCJkZWZlbnNlXCI6MCxcImRleHRlcml0eVwiOjAsXCJhZ2lsaXR5XCI6MCxcImNoYXJpc21hXCI6MCxcImludGVsbGlnZW5jZVwiOjB9LFwibXVsdHNcIjp7XCJoYWNraW5nX2NoYW5jZVwiOjEuMTE0NTk3NjE0ODMxNzcyNCxcImhhY2tpbmdfc3BlZWRcIjoxLjEyNjM4Njg3MzAzMjA3OTQsXCJoYWNraW5nX21vbmV5XCI6MS4wNjE1MjE1Mzc5MzUwMjE0LFwiaGFja2luZ19ncm93XCI6MS4wNjE1MjE1Mzc5MzUwMjE0LFwiaGFja2luZ1wiOjEuMjUyMjUwNDIwMjYzNDk2MyxcInN0cmVuZ3RoXCI6MS4wNjE1MjE1Mzc5MzUwMjE0LFwiZGVmZW5zZVwiOjEuMDYxNTIxNTM3OTM1MDIxNCxcImRleHRlcml0eVwiOjEuMTE0NTk3NjE0ODMxNzcyNCxcImFnaWxpdHlcIjoxLjExNDU5NzYxNDgzMTc3MjQsXCJjaGFyaXNtYVwiOjEuMDYxNTIxNTM3OTM1MDIxNCxcImhhY2tpbmdfZXhwXCI6MS4xNjc2NzM2OTE3Mjg1MjM4LFwic3RyZW5ndGhfZXhwXCI6MS4xNjc2NzM2OTE3Mjg1MjM4LFwiZGVmZW5zZV9leHBcIjoxLjE2NzY3MzY5MTcyODUyMzgsXCJkZXh0ZXJpdHlfZXhwXCI6MS4xNjc2NzM2OTE3Mjg1MjM4LFwiYWdpbGl0eV9leHBcIjoxLjE2NzY3MzY5MTcyODUyMzgsXCJjaGFyaXNtYV9leHBcIjoxLjE2NzY3MzY5MTcyODUyMzgsXCJjb21wYW55X3JlcFwiOjEuMDYxNTIxNTM3OTM1MDIxNCxcImZhY3Rpb25fcmVwXCI6MS4wNjE1MjE1Mzc5MzUwMjE0LFwiY3JpbWVfbW9uZXlcIjoxLjA2MTUyMTUzNzkzNTAyMTQsXCJjcmltZV9zdWNjZXNzXCI6MS4wNjE1MjE1Mzc5MzUwMjE0LFwiaGFja25ldF9ub2RlX21vbmV5XCI6Mi42NzcyNTY4MzYzMTYzMDUsXCJoYWNrbmV0X25vZGVfcHVyY2hhc2VfY29zdFwiOjAuNzIwNjYzNjYzMTExNDk0MyxcImhhY2tuZXRfbm9kZV9yYW1fY29zdFwiOjAuOTQyMDQ0MDA0MDY3MzEyOSxcImhhY2tuZXRfbm9kZV9jb3JlX2Nvc3RcIjowLjk0MjA0NDAwNDA2NzMxMjksXCJoYWNrbmV0X25vZGVfbGV2ZWxfY29zdFwiOjAuODAwNzM3NDAzNDU3MjE2LFwid29ya19tb25leVwiOjEuMDYxNTIxNTM3OTM1MDIxNCxcImJsYWRlYnVybmVyX21heF9zdGFtaW5hXCI6MSxcImJsYWRlYnVybmVyX3N0YW1pbmFfZ2FpblwiOjEsXCJibGFkZWJ1cm5lcl9hbmFseXNpc1wiOjEsXCJibGFkZWJ1cm5lcl9zdWNjZXNzX2NoYW5jZVwiOjF9LFwibW9uZXlcIjo4OTg0OTEyNTU0LjgyNDExNixcImNpdHlcIjpcIlNlY3Rvci0xMlwiLFwibG9jYXRpb25cIjpcIlRyYXZlbCBBZ2VuY3lcIixcImpvYnNcIjp7fSxcImN1cnJlbnRTZXJ2ZXJcIjpcImhvbWVcIixcInB1cmNoYXNlZFNlcnZlcnNcIjpbXCJob21lLTBcIixcImhvbWUtMVwiLFwiaG9tZS0yXCIsXCJob21lLTNcIixcImhvbWUtNFwiLFwiaG9tZS01XCIsXCJob21lLTZcIixcImhvbWUtN1wiLFwiaG9tZS04XCIsXCJob21lLTlcIixcImhvbWUtMTBcIixcImhvbWUtMTFcIixcImhvbWUtMTJcIixcImhvbWUtMTNcIixcImhvbWUtMTRcIixcImhvbWUtMTVcIixcImhvbWUtMTZcIixcImhvbWUtMTdcIixcImhvbWUtMThcIixcImhvbWUtMTlcIixcImhvbWUtMjBcIixcImhvbWUtMjFcIixcImhvbWUtMjJcIixcImhvbWUtMjNcIixcImhvbWUtMjRcIl0sXCJoYWNrbmV0Tm9kZXNcIjpbe1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjUsXCJsZXZlbFwiOjE1MCxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjo4NzY5LjI2Nzk1OTg1NjgyMyxcIm9ubGluZVRpbWVTZWNvbmRzXCI6NzM3NjcuMzk5OTk5NzM0NCxcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjQ1MjI4OTc2NS41MDc2ODc2LFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTBcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjo0LFwibGV2ZWxcIjoxNTAsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6Nzg5Mi4zNDExNjM4NzExNCxcIm9ubGluZVRpbWVTZWNvbmRzXCI6NzM3NjcuMzk5OTk5NzM0NCxcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjQ0ODQzMTYxOS45MDQyMzQzLFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTFcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjo0LFwibGV2ZWxcIjoxNTAsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6Nzg5Mi4zNDExNjM4NzExNCxcIm9ubGluZVRpbWVTZWNvbmRzXCI6NzM3NjcuMzk5OTk5NzM0NCxcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjQ0ODAwMTc0Ny43MTgzMzczNixcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS0yXCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6NCxcImxldmVsXCI6MTUwLFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjc4OTIuMzQxMTYzODcxMTQsXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjczNzY3LjM5OTk5OTczNDQsXCJyYW1cIjo2NCxcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjo0NDc2NDE0MTguMzE2OTA3MDUsXCJuYW1lXCI6XCJoYWNrbmV0LW5vZGUtM1wifX0se1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjQsXCJsZXZlbFwiOjE1MCxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjo3ODkyLjM0MTE2Mzg3MTE0LFwib25saW5lVGltZVNlY29uZHNcIjo3MzE0My41OTk5OTk3NDMxMixcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjQ0NzIzMTg3OS4wMzE4Mzc1LFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTRcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjo0LFwibGV2ZWxcIjoxNTAsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6Nzg5Mi4zNDExNjM4NzExNCxcIm9ubGluZVRpbWVTZWNvbmRzXCI6NzI2NTQuMTk5OTk5NzQ5OTcsXCJyYW1cIjo2NCxcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjo0NDY3ODIwMTkuNTkzMjU4ODYsXCJuYW1lXCI6XCJoYWNrbmV0LW5vZGUtNVwifX0se1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjQsXCJsZXZlbFwiOjE1MCxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjo3ODkyLjM0MTE2Mzg3MTE0LFwib25saW5lVGltZVNlY29uZHNcIjo3MTk3Mi4zOTk5OTk3NTk1MixcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjQ0NjI1MTk4NS4yMDYzOTQ3MyxcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS02XCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6NCxcImxldmVsXCI6MTUwLFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjc4OTIuMzQxMTYzODcxMTQsXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjcxMDc0Ljc5OTk5OTc3MjEyLFwicmFtXCI6NjQsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6NDQ1NjMwMDQyLjUzOTMwNzY1LFwibmFtZVwLine truncated
|
||||
+14
-5
@@ -3,8 +3,18 @@
|
||||
export async function main(ns) {
|
||||
ns.disableLog('ALL');
|
||||
|
||||
async function writeLog(obj) {
|
||||
await ns.tryWritePort(1, obj + '\n');
|
||||
async function writeLog(type, obj) {
|
||||
let timeNow = new Date();
|
||||
let year = timeNow.getFullYear().toString().substring(2);
|
||||
let month = (timeNow.getMonth() < 9 ? '0' : '') + (timeNow.getMonth() + 1);
|
||||
let day = (timeNow.getDate() < 10 ? '0' : '') + timeNow.getDate();
|
||||
let hour = (timeNow.getHours() < 10 ? '0' : '') + timeNow.getHours();
|
||||
let minute = (timeNow.getMinutes() < 10 ? '0' : '') + timeNow.getMinutes();
|
||||
let second = (timeNow.getSeconds() < 10 ? '0' : '') + timeNow.getSeconds();
|
||||
let timestamp = `${year}${month}${day}_${hour}${minute}${second}`;
|
||||
await ns.tryWritePort(1, `t${timestamp}_${type} = ${obj};\n`);
|
||||
|
||||
if (['ERROR', 'TERMINAL'].indexOf(type) != -1) ns.tprint(`${timestamp} ${type} = ${obj}`);
|
||||
}
|
||||
|
||||
let server = ns.args[0];
|
||||
@@ -38,8 +48,7 @@ export async function main(ns) {
|
||||
currentSecurity = ns.getServerSecurityLevel(server);
|
||||
}
|
||||
|
||||
await writeLog(`${server.replaceAll('-', '_')} = {loop: ${++loop}, hack: ${Math.floor(hackedMoney)}, money: ${Math.floor(currentMoney)} / ${Math.floor(maxMoney)} == ${((currentMoney / maxMoney) * 100).toFixed(2)}, security: ${currentSecurity.toFixed(2)} / ${Math.floor(minSecurity)} == ${((currentSecurity / minSecurity) * 100).toFixed(4)}};`);
|
||||
await ns.sleep(10);
|
||||
await writeLog('LOG', `${server.replaceAll('-', '_')} = {loop: ${++loop}, hack: ${Math.floor(hackedMoney)}, money: ${Math.floor(currentMoney)} / ${Math.floor(maxMoney)} == ${((currentMoney / maxMoney) * 100).toFixed(2)}, security: ${currentSecurity.toFixed(2)} / ${Math.floor(minSecurity)} == ${((currentSecurity / minSecurity) * 100).toFixed(4)}};`);
|
||||
await ns.sleep(50);
|
||||
}
|
||||
await ns.sleep(10);
|
||||
}
|
||||
@@ -8,3 +8,7 @@ export async function main(ns) {
|
||||
ns.exec('grow-helper.js', `home-${server}`, 5, 20);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user