fixes
This commit is contained in:
1 parent
2963efd97b
commit
34254586b5
12 files changed
+113
-46
No files matched your search
@@ -76,6 +76,7 @@
|
||||
"avmnite",
|
||||
"brutessh",
|
||||
"CSEC",
|
||||
"Deepscan",
|
||||
"dles",
|
||||
"ftpcrack",
|
||||
"Hacknet",
|
||||
|
||||
+4
-7
@@ -1,4 +1,6 @@
|
||||
/** @param {import(".").NS } ns */
|
||||
import { EXCLUDE_SERVERS } from "./constants.js";
|
||||
|
||||
export async function main(ns) {
|
||||
ns.disableLog('ALL');
|
||||
|
||||
@@ -176,12 +178,7 @@ export async function main(ns) {
|
||||
// await ns.sleep(10);
|
||||
// }
|
||||
|
||||
let excludeServers = ['home'];
|
||||
for (let index = 0; index < 25; index++) {
|
||||
excludeServers.push(`home-${index}`);
|
||||
}
|
||||
excludeServers.push('CSEC');
|
||||
excludeServers.push('avmnite-02h');
|
||||
|
||||
/**
|
||||
* Recursively kill simple-hack.js running on servers in the network
|
||||
* @async
|
||||
@@ -194,7 +191,7 @@ export async function main(ns) {
|
||||
let nextServer = availableServers[i];
|
||||
|
||||
if (nextServer != currentServer && nextServer != previousServer) {
|
||||
if (excludeServers.indexOf(nextServer) == -1) {
|
||||
if (EXCLUDE_SERVERS.indexOf(nextServer) == -1) {
|
||||
let hackExitCode = await runHack(nextServer);
|
||||
|
||||
if (hackExitCode == 0) {
|
||||
|
||||
+10
-4
@@ -34,6 +34,8 @@ export async function main(ns) {
|
||||
let targetPath = scanServer('home', ns.args[0]);
|
||||
ns.tprint(targetPath);
|
||||
|
||||
const terminalInput = document.getElementById("terminal-input");
|
||||
const handler = Object.keys(terminalInput)[1];
|
||||
let backdoorCommand = '';
|
||||
|
||||
for (let index = 1; index < targetPath.length; index++) {
|
||||
@@ -41,18 +43,22 @@ export async function main(ns) {
|
||||
|
||||
backdoorCommand += `connect ${server}; `;
|
||||
}
|
||||
backdoorCommand += 'run BruteSSH.exe; ';
|
||||
|
||||
ns.tprint(backdoorCommand);
|
||||
terminalInput.value = backdoorCommand;
|
||||
terminalInput[handler].onChange({ target: terminalInput });
|
||||
terminalInput[handler].onKeyDown({ key: 'Enter', preventDefault: () => null });
|
||||
|
||||
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';
|
||||
backdoorCommand += 'backdoor';
|
||||
|
||||
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 });
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
/** @param {import(".").NS } ns */
|
||||
// import { EXCLUDE_SERVERS } from "./constants.js";
|
||||
|
||||
export const EXCLUDE_SERVERS = ['home'];
|
||||
for (let index = 0; index < 25; index++) {
|
||||
EXCLUDE_SERVERS.push(`home-${index}`);
|
||||
}
|
||||
EXCLUDE_SERVERS.push('CSEC');
|
||||
EXCLUDE_SERVERS.push('avmnite-02h');
|
||||
EXCLUDE_SERVERS.push('I.I.I.I');
|
||||
|
||||
const COMPLETED_FACTIONS = [
|
||||
'CyberSec',
|
||||
'Netburners',
|
||||
'NiteSec'
|
||||
];
|
||||
@@ -1,2 +1,3 @@
|
||||
CyberSec
|
||||
Netburners
|
||||
NiteSec
|
||||
@@ -1,11 +0,0 @@
|
||||
/** @param {import(".").NS } ns */
|
||||
|
||||
export async function main(ns) {
|
||||
ns.disableLog('ALL');
|
||||
|
||||
async function writeLog(obj) {
|
||||
await ns.tryWritePort(, obj + '\n');
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+3
-9
@@ -3,13 +3,7 @@
|
||||
export async function main(ns) {
|
||||
// ns.disableLog('ALL');
|
||||
|
||||
let excludeServers = ['home'];
|
||||
for (let index = 0; index < 25; index++) {
|
||||
excludeServers.push(`home-${index}`);
|
||||
}
|
||||
excludeServers.push('CSEC');
|
||||
excludeServers.push('avmnite-02h');
|
||||
|
||||
// TODO: add increasing threshold if no servers lower than current threshold
|
||||
async function scanServer(currentServer, previousServer = currentServer) {
|
||||
let availableServers = ns.scan(currentServer);
|
||||
|
||||
@@ -17,7 +11,7 @@ export async function main(ns) {
|
||||
let nextServer = availableServers[i];
|
||||
|
||||
if (nextServer != currentServer && nextServer != previousServer) {
|
||||
if (excludeServers.indexOf(nextServer) == -1 && ns.scriptRunning('simple-hack.js', nextServer)) {
|
||||
if (ns.scriptRunning('simple-hack.js', nextServer)) {
|
||||
let maxMoney = ns.getServerMaxMoney(nextServer);
|
||||
let currentMoney = ns.getServerMoneyAvailable(nextServer);
|
||||
|
||||
@@ -25,7 +19,7 @@ export async function main(ns) {
|
||||
await ns.grow(nextServer);
|
||||
}
|
||||
}
|
||||
await scanServer(nextServer, maxDepth, depth + 1, currentServer);
|
||||
await scanServer(nextServer, currentServer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+73
-7
@@ -3,17 +3,75 @@
|
||||
export async function main(ns) {
|
||||
ns.disableLog('ALL');
|
||||
|
||||
let nodeCostThreshold = ns.args.length > 0 ? ns.args[0] : 0.1;
|
||||
let upgradeCostThreshold = ns.args.length > 1 ? ns.args[1] : 0.05;
|
||||
let upgradeCount = ns.args.length > 2 ? ns.args[2] : 1;
|
||||
let levelCap = 150;
|
||||
let ramCap = 64;
|
||||
let coreCap = 4;
|
||||
let nodeCap = 18;
|
||||
const nodeCostThreshold = ns.args.length > 0 ? ns.args[0] : 0.8;
|
||||
const upgradeCostThreshold = ns.args.length > 1 ? ns.args[1] : 0.1;
|
||||
const upgradeCount = ns.args.length > 2 ? ns.args[2] : 1;
|
||||
const nodeCap = 18;
|
||||
const levelCap = 200;
|
||||
const ramCap = 64;
|
||||
const coreCap = 16;
|
||||
// const levelCap = 150;
|
||||
// const ramCap = 64;
|
||||
// const coreCap = 4;
|
||||
ns.tprint(`Bot started {nodeCostThreshold: ${nodeCostThreshold}, upgradeCostThreshold: ${upgradeCostThreshold}, upgradeCount: ${upgradeCount}}`);
|
||||
|
||||
// const terminalInput = document.getElementById("terminal-input");
|
||||
// const handler = Object.keys(terminalInput)[1];
|
||||
|
||||
const darkWebPrograms = [
|
||||
{ name: 'BruteSSH.exe', cost: 0 },
|
||||
{ name: 'FTPCrack.exe', cost: 1500000 },
|
||||
{ name: 'relaySMTP.exe', cost: 5000000 },
|
||||
{ name: 'HTTPWorm.exe', cost: 30000000 },
|
||||
{ name: 'SQLInject.exe', cost: 250000000 },
|
||||
{ name: 'ServerProfiler.exe', cost: 500000 },
|
||||
{ name: 'DeepscanV1.exe', cost: 500000 },
|
||||
{ name: 'DeepscanV2.exe', cost: 25000000 },
|
||||
{ name: 'AutoLink.exe', cost: 1000000 },
|
||||
{ name: 'Formulas.exe', cost: 5000000000 }
|
||||
];
|
||||
|
||||
const HACKNET_UPGRADE_PATTERN = {
|
||||
currentLevel: 0,
|
||||
upgradeLevels: [
|
||||
{
|
||||
nodeCount: 6,
|
||||
nodeLevel: 30,
|
||||
ram: 4,
|
||||
cores: 1
|
||||
},
|
||||
{
|
||||
nodeCount: 9,
|
||||
nodeLevel: 60,
|
||||
ram: 8,
|
||||
cores: 2
|
||||
},
|
||||
{
|
||||
nodeCount: 12,
|
||||
nodeLevel: 60,
|
||||
ram: 8,
|
||||
cores: 2
|
||||
},
|
||||
{
|
||||
nodeCount: 15,
|
||||
nodeLevel: 150,
|
||||
ram: 16,
|
||||
cores: 6
|
||||
},
|
||||
{
|
||||
nodeCount: 18,
|
||||
nodeLevel: 200,
|
||||
ram: 64,
|
||||
cores: 16
|
||||
}
|
||||
],
|
||||
complete: false
|
||||
};
|
||||
|
||||
while (true) {
|
||||
let currentMoney = ns.getServerMoneyAvailable("home");
|
||||
|
||||
if (!HACKNET_UPGRADE_PATTERN.complete) {
|
||||
let nodePurchaseCost = ns.hacknet.getPurchaseNodeCost();
|
||||
let nodeCount = ns.hacknet.numNodes();
|
||||
|
||||
@@ -41,6 +99,7 @@ export async function main(ns) {
|
||||
currentMoney = ns.getServerMoneyAvailable("home");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let serverCost = ns.getPurchasedServerCost(16);
|
||||
|
||||
@@ -49,11 +108,18 @@ export async function main(ns) {
|
||||
if (newServer != '') {
|
||||
ns.tprint(`Bought a server`);
|
||||
ns.scp('grow-helper.js', newServer);
|
||||
ns.scp('constants.js', newServer);
|
||||
let execExitCode = ns.exec('grow-helper.js', newServer, 5, 20);
|
||||
ns.tprint(`Exec 'grow-helper.js' exit code: ${execExitCode}`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// terminalInput.value = backdoorCommand;
|
||||
// terminalInput[handler].onChange({ target: terminalInput });
|
||||
// terminalInput[handler].onKeyDown({ key: 'Enter', preventDefault: () => null });
|
||||
|
||||
|
||||
let logFiles = ['hack-log.js', 'nuke-log.js'];
|
||||
|
||||
for (let index = 0; index < logFiles.length; index++) {
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
/** @param {import(".").NS } ns */
|
||||
import { EXCLUDE_SERVERS } from "./constants.js";
|
||||
|
||||
export async function main(ns) {
|
||||
ns.disableLog('ALL');
|
||||
|
||||
|
||||
let excludeServers = ['home'];
|
||||
for (let index = 0; index < 25; index++) {
|
||||
excludeServers.push(`home-${index}`);
|
||||
}
|
||||
excludeServers.push('CSEC');
|
||||
excludeServers.push('avmnite-02h');
|
||||
/**
|
||||
* Recursively kill simple-hack.js running on servers in the network
|
||||
* @async
|
||||
@@ -22,7 +17,7 @@ export async function main(ns) {
|
||||
let nextServer = availableServers[i];
|
||||
|
||||
if (nextServer != currentServer && nextServer != previousServer) {
|
||||
if (excludeServers.indexOf(nextServer) == -1) ns.scriptKill('simple-hack.js', nextServer);
|
||||
if (EXCLUDE_SERVERS.indexOf(nextServer) == -1) ns.scriptKill('simple-hack.js', nextServer);
|
||||
scanServer(nextServer, currentServer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
eyJjdG9yIjoiQml0YnVybmVyU2F2ZU9iamVjdCIsImRhdGEiOnsiUGxheWVyU2F2ZSI6IntcImN0b3JcIjpcIlBsYXllck9iamVjdFwiLFwiZGF0YVwiOntcImhwXCI6e1wiY3VycmVudFwiOjEwLFwibWF4XCI6MTB9LFwic2tpbGxzXCI6e1wiaGFja2luZ1wiOjM1NCxcInN0cmVuZ3RoXCI6ODcsXCJkZWZlbnNlXCI6MSxcImRleHRlcml0eVwiOjEsXCJhZ2lsaXR5XCI6MSxcImNoYXJpc21hXCI6MSxcImludGVsbGlnZW5jZVwiOjB9LFwiZXhwXCI6e1wiaGFja2luZ1wiOjM1OTA1OTEuNjEwMjUzMjQ2LFwic3RyZW5ndGhcIjo2Mjg4LjE1NjM2NDY5NzExMixcImRlZmVuc2VcIjowLFwiZGV4dGVyaXR5XCI6MCxcImFnaWxpdHlcIjowLFwiY2hhcmlzbWFcIjowLFwiaW50ZWxsaWdlbmNlXCI6MH0sXCJtdWx0c1wiOntcImhhY2tpbmdfY2hhbmNlXCI6MS4xMTQ1OTc2MTQ4MzE3NzI0LFwiaGFja2luZ19zcGVlZFwiOjEuMTI2Mzg2ODczMDMyMDc5NCxcImhhY2tpbmdfbW9uZXlcIjoxLjA2MTUyMTUzNzkzNTAyMTQsXCJoYWNraW5nX2dyb3dcIjoxLjA2MTUyMTUzNzkzNTAyMTQsXCJoYWNraW5nXCI6MS4yNTIyNTA0MjAyNjM0OTYzLFwic3RyZW5ndGhcIjoxLjA2MTUyMTUzNzkzNTAyMTQsXCJkZWZlbnNlXCI6MS4wNjE1MjE1Mzc5MzUwMjE0LFwiZGV4dGVyaXR5XCI6MS4xMTQ1OTc2MTQ4MzE3NzI0LFwiYWdpbGl0eVwiOjEuMTE0NTk3NjE0ODMxNzcyNCxcImNoYXJpc21hXCI6MS4wNjE1MjE1Mzc5MzUwMjE0LFwiaGFja2luZ19leHBcIjoxLjE2NzY3MzY5MTcyODUyMzgsXCJzdHJlbmd0aF9leHBcIjoxLjE2NzY3MzY5MTcyODUyMzgsXCJkZWZlbnNlX2V4cFwiOjEuMTY3NjczNjkxNzI4NTIzOCxcImRleHRlcml0eV9leHBcIjoxLjE2NzY3MzY5MTcyODUyMzgsXCJhZ2lsaXR5X2V4cFwiOjEuMTY3NjczNjkxNzI4NTIzOCxcImNoYXJpc21hX2V4cFwiOjEuMTY3NjczNjkxNzI4NTIzOCxcImNvbXBhbnlfcmVwXCI6MS4wNjE1MjE1Mzc5MzUwMjE0LFwiZmFjdGlvbl9yZXBcIjoxLjA2MTUyMTUzNzkzNTAyMTQsXCJjcmltZV9tb25leVwiOjEuMDYxNTIxNTM3OTM1MDIxNCxcImNyaW1lX3N1Y2Nlc3NcIjoxLjA2MTUyMTUzNzkzNTAyMTQsXCJoYWNrbmV0X25vZGVfbW9uZXlcIjoyLjY3NzI1NjgzNjMxNjMwNSxcImhhY2tuZXRfbm9kZV9wdXJjaGFzZV9jb3N0XCI6MC43MjA2NjM2NjMxMTE0OTQzLFwiaGFja25ldF9ub2RlX3JhbV9jb3N0XCI6MC45NDIwNDQwMDQwNjczMTI5LFwiaGFja25ldF9ub2RlX2NvcmVfY29zdFwiOjAuOTQyMDQ0MDA0MDY3MzEyOSxcImhhY2tuZXRfbm9kZV9sZXZlbF9jb3N0XCI6MC44MDA3Mzc0MDM0NTcyMTYsXCJ3b3JrX21vbmV5XCI6MS4wNjE1MjE1Mzc5MzUwMjE0LFwiYmxhZGVidXJuZXJfbWF4X3N0YW1pbmFcIjoxLFwiYmxhZGVidXJuZXJfc3RhbWluYV9nYWluXCI6MSxcImJsYWRlYnVybmVyX2FuYWx5c2lzXCI6MSxcImJsYWRlYnVybmVyX3N1Y2Nlc3NfY2hhbmNlXCI6MX0sXCJtb25leVwiOjM3OTYwNzkyLjc1MDkyMTMzLFwiY2l0eVwiOlwiU2VjdG9yLTEyXCIsXCJsb2NhdGlvblwiOlwiVHJhdmVsIEFnZW5jeVwiLFwiam9ic1wiOnt9LFwiY3VycmVudFNlcnZlclwiOlwiaG9tZVwiLFwicHVyY2hhc2VkU2VydmVyc1wiOltcImhvbWUtMFwiLFwiaG9tZS0xXCIsXCJob21lLTJcIixcImhvbWUtM1wiLFwiaG9tZS00XCIsXCJob21lLTVcIixcImhvbWUtNlwiLFwiaG9tZS03XCIsXCJob21lLThcIixcImhvbWUtOVwiLFwiaG9tZS0xMFwiLFwiaG9tZS0xMVwiLFwiaG9tZS0xMlwiLFwiaG9tZS0xM1wiLFwiaG9tZS0xNFwiLFwiaG9tZS0xNVwiLFwiaG9tZS0xNlwiLFwiaG9tZS0xN1wiLFwiaG9tZS0xOFwiLFwiaG9tZS0xOVwiLFwiaG9tZS0yMFwiLFwiaG9tZS0yMVwiLFwiaG9tZS0yMlwiLFwiaG9tZS0yM1wiLFwiaG9tZS0yNFwiXSxcImhhY2tuZXROb2Rlc1wiOlt7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6MTYsXCJsZXZlbFwiOjIwMCxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjoyNDU1My45NTAyODc1OTkxMDYsXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjEwMTk5MS4zOTk5OTkzMjQwMSxcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjk4MzM0MjI1MS41NTkxNTIxLFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTBcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjoxNixcImxldmVsXCI6MjAwLFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjI0NTUzLjk1MDI4NzU5OTEwNixcIm9ubGluZVRpbWVTZWNvbmRzXCI6MTAxOTkxLjM5OTk5OTMyNDAxLFwicmFtXCI6NjQsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6OTY4MzY1Mjc1LjE2ODM1NDUsXCJuYW1lXCI6XCJoYWNrbmV0LW5vZGUtMVwifX0se1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjE2LFwibGV2ZWxcIjoyMDAsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6MjQ1NTMuOTUwMjg3NTk5MTA2LFwib25saW5lVGltZVNlY29uZHNcIjoxMDE5OTEuMzk5OTk5MzI0MDEsXCJyYW1cIjo2NCxcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjo5Njc5MzU0MDIuOTgyNDU3NixcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS0yXCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6MTYsXCJsZXZlbFwiOjIwMCxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjoyNDU1My45NTAyODc1OTkxMDYsXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjEwMTk5MS4zOTk5OTkzMjQwMSxcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjk2NzU3NTA3My41ODEwMjczLFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTNcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjoxNixcImxldmVsXCI6MjAwLFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjI0NTUzLjk1MDI4NzU5OTEwNixcIm9ubGluZVRpbWVTZWNvbmRzXCI6MTAxMzY3LjU5OTk5OTMzMjczLFwicmFtXCI6NjQsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6OTY3MTY1NTM0LjI5NTk1NzgsXCJuYW1lXCI6XCJoYWNrbmV0LW5vZGUtNFwifX0se1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjE2LFwibGV2ZWxcIjoyMDAsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6MjQ1NTMuOTUwMjg3NTk5MTA2LFwib25saW5lVGltZVNlY29uZHNcIjoxMDA4NzguMTk5OTk5MzM5NTcsXCJyYW1cIjo2NCxcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjo5NjY3MTU2NzQuODU3Mzc5MSxcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS01XCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6MTYsXCJsZXZlbFwiOjIwMCxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjoyNDU1My45NTAyODc1OTkxMDYsXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjEwMDE5Ni4zOTk5OTkzNDkxMyxcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjk2NjE4NTY0MC40NzA1MTUsXCJuYW1lXCI6XCJoYWNrbmV0LW5vZGUtNlwifX0se1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjE2LFwibGV2ZWxcIjoyMDAsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6MjQ1NTMuOTUwMjg3NTk5MTA2LFwib25saW5lVGltZVNlY29uZHNcIjo5OTI5OC43OTk5OTkzNjE3MyxcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
eyJjdG9yIjoiQml0YnVybmVyU2F2ZU9iamVjdCIsImRhdGEiOnsiUGxheWVyU2F2ZSI6IntcImN0b3JcIjpcIlBsYXllck9iamVjdFwiLFwiZGF0YVwiOntcImhwXCI6e1wiY3VycmVudFwiOjEwLFwibWF4XCI6MTB9LFwic2tpbGxzXCI6e1wiaGFja2luZ1wiOjM5MCxcInN0cmVuZ3RoXCI6MSxcImRlZmVuc2VcIjoxLFwiZGV4dGVyaXR5XCI6MSxcImFnaWxpdHlcIjoxLFwiY2hhcmlzbWFcIjoxLFwiaW50ZWxsaWdlbmNlXCI6MH0sXCJleHBcIjp7XCJoYWNraW5nXCI6ODc4NTM1Ljg5MjAwMzM0MjQsXCJzdHJlbmd0aFwiOjAsXCJkZWZlbnNlXCI6MCxcImRleHRlcml0eVwiOjAsXCJhZ2lsaXR5XCI6MCxcImNoYXJpc21hXCI6MCxcImludGVsbGlnZW5jZVwiOjB9LFwibXVsdHNcIjp7XCJoYWNraW5nX2NoYW5jZVwiOjEuMjA1NzkwMzc2OTU4NjEzLFwiaGFja2luZ19zcGVlZFwiOjEuMjA3NDAzMjE4NTQzMTg1LFwiaGFja2luZ19tb25leVwiOjEuNTcyMTc1NjYxNTY3MzUyMyxcImhhY2tpbmdfZ3Jvd1wiOjEuMDkzNjg3NDE2NzQyNTA2LFwiaGFja2luZ1wiOjEuNjQwMzIzODUyNTM2ODYzNSxcInN0cmVuZ3RoXCI6MS4wOTM2ODc0MTY3NDI1MDYsXCJkZWZlbnNlXCI6MS4wOTM2ODc0MTY3NDI1MDYsXCJkZXh0ZXJpdHlcIjoxLjE0ODM3MTc4NzU3OTYzMTMsXCJhZ2lsaXR5XCI6MS4xNDgzNzE3ODc1Nzk2MzEzLFwiY2hhcmlzbWFcIjoxLjA5MzY4NzQxNjc0MjUwNixcImhhY2tpbmdfZXhwXCI6Mi4wODgyNDIzMjI0NzY4MzU2LFwic3RyZW5ndGhfZXhwXCI6MS4zODM1MTQ1ODIxNzkyNyxcImRlZmVuc2VfZXhwXCI6MS4zODM1MTQ1ODIxNzkyNyxcImRleHRlcml0eV9leHBcIjoxLjM4MzUxNDU4MjE3OTI3LFwiYWdpbGl0eV9leHBcIjoxLjM4MzUxNDU4MjE3OTI3LFwiY2hhcmlzbWFfZXhwXCI6MS4zODM1MTQ1ODIxNzkyNyxcImNvbXBhbnlfcmVwXCI6MS4wOTM2ODc0MTY3NDI1MDYsXCJmYWN0aW9uX3JlcFwiOjEuMDkzNjg3NDE2NzQyNTA2LFwiY3JpbWVfbW9uZXlcIjoxLjA5MzY4NzQxNjc0MjUwNixcImNyaW1lX3N1Y2Nlc3NcIjoxLjA5MzY4NzQxNjc0MjUwNixcImhhY2tuZXRfbm9kZV9tb25leVwiOjIuNzU4MzgyMTk4MjE5OTE5NyxcImhhY2tuZXRfbm9kZV9wdXJjaGFzZV9jb3N0XCI6MC42OTk0Njg1OTQzMDY4NzY1LFwiaGFja25ldF9ub2RlX3JhbV9jb3N0XCI6MC45MTQzMzgwMzE3NzM2OTQ4LFwiaGFja25ldF9ub2RlX2NvcmVfY29zdFwiOjAuOTE0MzM4MDMxNzczNjk0OCxcImhhY2tuZXRfbm9kZV9sZXZlbF9jb3N0XCI6MC43NzcxODczMjcwMDc2NDA1LFwid29ya19tb25leVwiOjEuMDkzNjg3NDE2NzQyNTA2LFwiYmxhZGVidXJuZXJfbWF4X3N0YW1pbmFcIjoxLFwiYmxhZGVidXJuZXJfc3RhbWluYV9nYWluXCI6MSxcImJsYWRlYnVybmVyX2FuYWx5c2lzXCI6MSxcImJsYWRlYnVybmVyX3N1Y2Nlc3NfY2hhbmNlXCI6MX0sXCJtb25leVwiOjM1NjIzMTkuNjI2MzQ3Nzk4NCxcImNpdHlcIjpcIlNlY3Rvci0xMlwiLFwibG9jYXRpb25cIjpcIkFscGhhIEVudGVycHJpc2VzXCIsXCJqb2JzXCI6e30sXCJjdXJyZW50U2VydmVyXCI6XCJob21lXCIsXCJwdXJjaGFzZWRTZXJ2ZXJzXCI6W1wiaG9tZS0wXCIsXCJob21lLTFcIixcImhvbWUtMlwiLFwiaG9tZS0zXCIsXCJob21lLTRcIixcImhvbWUtNVwiLFwiaG9tZS02XCIsXCJob21lLTdcIixcImhvbWUtOFwiLFwiaG9tZS05XCIsXCJob21lLTEwXCIsXCJob21lLTExXCIsXCJob21lLTEyXCIsXCJob21lLTEzXCIsXCJob21lLTE0XCIsXCJob21lLTE1XCIsXCJob21lLTE2XCIsXCJob21lLTE3XCIsXCJob21lLTE4XCIsXCJob21lLTE5XCIsXCJob21lLTIwXCIsXCJob21lLTIxXCIsXCJob21lLTIyXCIsXCJob21lLTIzXCIsXCJob21lLTI0XCJdLFwiaGFja25ldE5vZGVzXCI6W3tcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjozLFwibGV2ZWxcIjoxOTIsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6MTc3NC41NjA5MTc5NzMyNCxcIm9ubGluZVRpbWVTZWNvbmRzXCI6MTU5NzcuODAwMDAwMDI0NDg3LFwicmFtXCI6MTYsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6MTI4NTgxNTcuNTgyNzE1NzAxLFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTBcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjozLFwibGV2ZWxcIjoxOTAsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6MTc1Ni4wNzU5MDg0MTEwMTg5LFwib25saW5lVGltZVNlY29uZHNcIjoxNTk3Ny42MDAwMDAwMjQ0ODgsXCJyYW1cIjoxNixcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjoxMjM3NjE5OC4zMjYzMTA0MzMsXCJuYW1lXCI6XCJoYWNrbmV0LW5vZGUtMVwifX0se1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjIsXCJsZXZlbFwiOjE5MCxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjoxNTM2LjU2NjQxOTg1OTY0MTcsXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjE1OTc3LjYwMDAwMDAyNDQ4OCxcInJhbVwiOjE2LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjExOTUxNTA4LjI1ODg0Mzg0MyxcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS0yXCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6MixcImxldmVsXCI6MTg5LFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjE1MjguNDc5MjI4MTc2MTY5NyxcIm9ubGluZVRpbWVTZWNvbmRzXCI6MTU5NzcuNjAwMDAwMDI0NDg4LFwicmFtXCI6MTYsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6MTE4MTMyMjQuMDY0NjY1ODMsXCJuYW1lXCI6XCJoYWNrbmV0LW5vZGUtM1wifX0se1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjIsXCJsZXZlbFwiOjE4OCxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjoxNTIwLjM5MjAzNjQ5MjY5ODMsXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjE1OTc3LjYwMDAwMDAyNDQ4OCxcInJhbVwiOjE2LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjExNjY3NTExLjgyNjk5NjYyLFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTRcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjoyLFwibGV2ZWxcIjoxODgsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6MTUyMC4zOTIwMzY0OTI2OTgzLFwib25saW5lVGltZVNlY29uZHNcIjoxNTk3Ny40MDAwMDAwMjQ0ODUsXCJyYW1cIjoxNixcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjoxMTQ5MjY5NS4yODU0NTU1NSxcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS01XCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6MixcImxldmVsXCI6MTg3LFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjE1MTIuMzA0ODQ0ODA5MjI2MyxcIm9ubGluZVRpbWVTZWNvbmRzXCI6MTU5NzcuNDAwMDAwMDI0NDg1LFwicmFtXCI6MTYsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6MTE0NDQxOTAuMzQyNDYyNDk1LFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTZcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjoyLFwibGV2ZWxcIjoxODcsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6MTUxMi4zMDQ4NDQ4MDkyMjYzLFwib25saW5lVGltZVNlY29uZHNcIjoxNDk3NC42MDAwMDAwMjA4MzksXCJyYW1cIjoxNixcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjoxMDk2NDM0Mi4yNjk0OTY1MixcIm5hbWVcIjpcImhhY2tLine truncated
|
||||
+1
-1
@@ -48,7 +48,7 @@ export async function main(ns) {
|
||||
currentSecurity = ns.getServerSecurityLevel(server);
|
||||
}
|
||||
|
||||
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 writeLog('LOG', `{server: '${server}', 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);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user