Bot simple que usa matemáticas para elegir la actualización más rentable.
¿Cómo funciona?
El bot sigue los siguientes pasos.
- Comprueba el costo y el crecimiento de la producción de todas las actualizaciones posibles
- Calcula la relación rentable de cada actualización
- Ordena los elementos por proporción descendente
- Elige el primer elemento.
- Comprueba si puede comprar la actualización ahora, si no, espera para cobrar el dinero
- Comprueba si puedes comprar un nuevo nodo en menos de 30 segundos (puedes personalizar este tiempo), si es así lo compra
- Repetir…
Ratio rentable = Crecimiento de la producción / costo de actualización
Crecimiento de la producción = Producción después de la actualización/producción actual
Esta guía se basa en mi anterior "Automatización para nodos Hacknet".
Instrucciones de uso
Tome los siguientes pasos.
- Ejecutar la terminal
- Escriba 'nano hacknet-bot.js'
- Copie y pegue el siguiente código en este archivo
- Guarda el archivo (ctrl + s)
- De vuelta a la terminal
- Escriba 'ejecutar hacknet-bot.js'
/** @param {NS} ns **/ export async function main(ns) { // helpers const getMoney = () => ns.getPlayer().money; const getProd = (nivel, ram, núcleos) => (nivel * 1.5) * Math.pow(1.035, ram - 1) * ((núcleos + 5) / 6); // tu multiplicador de producción const PROD_MULTIPLIER = ns.getHacknetMultipliers().production; // tiempo máximo de espera para recolectar dinero para el nuevo nodo (predeterminado 30 s) const WAITING_TIME = ns.args[0] || 30; while (verdadero) { cocientes constantes = []; let hacknetProduction = 0; // recorrer todos los nodos para (let index = 0; index < ns.hacknet.numNodes(); index++) { // obtener las estadísticas actuales del nodo const { level, ram, cores, production } = ns.hacknet.getNodeStats(index ); hacknetProduction += producción; // obtener el costo de las actualizaciones const levelUpgradeCost = ns.hacknet.getLevelUpgradeCost(index); const ramUpgradeCost = ns.hacknet.getRamUpgradeCost(índice); const coreUpgradeCost = ns.hacknet.getCoreUpgradeCost(índice); // obtener prod. ratios de crecimiento/costo const levelUpgradeRatio = ((getProd(level + 1, ram, cores) * PROD_MULTIPLIER) - producción) / levelUpgradeCost; const ramUpgradeRatio = ((getProd(nivel, ram * 2, núcleos) * PROD_MULTIPLIER) - producción) / ramUpgradeCost; const coreUpgradeRatio = ((getProd(level, ram, cores + 1) * PROD_MULTIPLIER) - producción) / coreUpgradeCost; // posibles actualizaciones del nodo actual const currentNodeUpgrades = [ {ratio: levelUpgradeRatio, cost: levelUpgradeCost, nodeIndex: index, upgrade: "level"}, {ratio: ramUpgradeRatio, cost: ramUpgradeCost, nodeIndex: index, upgrade: "ram"} , {proporción: coreUpgradeRatio, costo: coreUpgradeCost, nodeIndex: índice, actualización: "core"} ]; // enviar actualizaciones de nodos actuales a todas las actualizaciones ratios.push(...currentNodeUpgrades); } // obtenga la actualización más rentable const { cost, nodeIndex, upgrade } = ratios.sort((a, b) => b.ratio - a.ratio)[0]; // espera hasta que tengas el dinero para la actualización while (getMoney() < cost) { await ns.sleep(1); } // ejecutar el cambio de actualización (actualización) { case "level": await ns.hacknet.upgradeLevel(nodeIndex); romper; case "ram": espera ns.hacknet.upgradeRam(nodeIndex); romper; case "core": espera ns.hacknet.upgradeCore(nodeIndex); romper; predeterminado: continuar; } // comprueba si puedes comprar un nuevo nodo const buyNodeCost = ns.hacknet.getPurchaseNodeCost(); const faltaDineroParaNuevoNodo = costeNodoCompra - obtenerDinero(); if (missingMoneyForNewNode > 0 && MissingMoneyForNewNode < hacknetProduction * WAITING_TIME) { // si necesita esperar el nodo de compra menos de WAITING_TIME (en segundos) el programa espera para recolectar dinero mientras (getMoney() < buyNodeCost) { await ns.sleep(1 ); } ns.hacknet.purchaseNode(); } // duerme 1 ms para evitar bloqueos debido a un bucle infinito await ns.sleep(1); } }
Puede personalizar el tiempo de espera del nodo de compra (de forma predeterminada, 30 s) pasando un argumento de secuencia de comandos adicional. Por ejemplo:
ejecutar hacknet-bot.js 120
Eso es todo lo que estamos compartiendo hoy para este Quemador de bits guía. Esta guía fue originalmente creada y escrita por syw1. En caso de que no actualicemos esta guía, puede encontrar la última actualización siguiendo este liga.