Files
BitburnerOLD/simple-hack.js
T
2022-09-11 05:03:16 +02:00

45 lines
1.5 KiB
JavaScript

/** @param {import(".").NS } ns */
export async function main(ns) {
ns.disableLog('ALL');
async function writeLog(obj) {
await ns.tryWritePort(1, obj + '\n');
}
let server = ns.args[0];
let maxMoney = ns.getServerMaxMoney(server);
let minSecurity = ns.getServerMinSecurityLevel(server);
let loop = 0;
let previousMoney = 0;
while (maxMoney != 0) {
let currentMoney = ns.getServerMoneyAvailable(server);
let currentSecurity = ns.getServerSecurityLevel(server);
ns.print(`Money: ${currentMoney} / ${maxMoney}`);
ns.print(`Security: ${currentSecurity} / ${minSecurity}`);
let hackedMoney = 0;
if (currentMoney > 0.1 * maxMoney) {
hackedMoney = await ns.hack(server);
currentMoney = ns.getServerMoneyAvailable(server);
}
if (currentMoney < 0.9 * maxMoney) {
while (currentMoney <= previousMoney) {
await ns.grow(server);
currentMoney = ns.getServerMoneyAvailable(server);
}
}
previousMoney = currentMoney;
if (currentSecurity > 2 * minSecurity) {
await ns.weaken(server);
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 ns.sleep(10);
}