Este script automatizará completamente la compra de todas las actualizaciones de Hacknet en el método más rápido posible. El método más rápido es el rendimiento exponencial que se otorga al seleccionar la actualización más barata en todo momento, lo que hace que su dinero trabaje para usted más rápido. Determine la actualización más barata, espere los fondos, compre, enjuague y repita.
Nota: el uso de RAM es de 5.7 GB
Crear secuencia de comandos ES5
Este script utiliza el intérprete de JavaScript ES5, también conocido como Netscript 1.0, lo que significa que se requiere una extensión de archivo de .script.
Mientras está dentro de Bitburner Terminal, cree un nuevo script escribiendo lo siguiente:
nano nombreDeTuArchivo.script
Ejemplo: nano hacknet_infinite.script
Nota: este script requiere 5.7 GB de memoria disponible
Código de script
Copie el contenido de la secuencia de comandos y guárdelo en el nuevo archivo de secuencia de comandos que acaba de crear.
// Create Function to Return Balance function myMoney() { return getServerMoneyAvailable("home"); } // Disable Logging for the Following Commands Below (We Dont Want To See Them While we Wait for Our Balance to Grow) disableLog("getServerMoneyAvailable"); disableLog("sleep"); // Create Function to Purchase Upgrade Based on 3 Flags for Node, Item, Qty // # Note Qty is not utilised but the Framework is in Place to Future Proof function purchase(node, item, qty){ var node = node, item = item, qty = qty; if (item == "New Node"){ hacknet.purchaseNode(); print("Purchasing New Node") } if (item == "LVL"){ hacknet.upgradeLevel(node , qty) print("Purchasing LVL Upgrade for Node: " + node) } if (item == "RAM"){ hacknet.upgradeRam(node , qty) print("Purchasing RAM Upgrade for Node: " + node) } if (item == "CPU"){ hacknet.upgradeCore(node , qty) print("Purchasing CPU Upgrade for Node: " + node) } } // Create Function to Find the Cheapest Upgrade and Set Flags to be Used by the Purchase Function // We will set the Default Flags to Purchase a New Node, Only to be Overwritten if a Cheaper Option is Available function check_cheapest() { var new_node_cost = hacknet.getPurchaseNodeCost(); var node = "Default"; var item = "New Node"; var qty = 1; var cheapest = new_node_cost; var node_qty = hacknet.numNodes(); // Iterate Through all Node Upgrade Options, Overwrite Flags if Cheaper Upgrade is Found for (var i = 0; i < node_qty; i++) { var node_lvl = hacknet.getLevelUpgradeCost(i, 1); var node_ram = hacknet.getRamUpgradeCost(i, 1); var node_cpu = hacknet.getCoreUpgradeCost(i, 1); if (node_lvl < cheapest) { cheapest = node_lvl; node = i; item = "LVL"; } if (node_ram < cheapest) { cheapest = node_ram; node = i; item = "RAM"; } if (node_cpu < cheapest) { cheapest = node_cpu; node = i; item = "CPU"; } } // I am not a JavaScript Programmer so I am not Adept at String Manipulation in this Language // Print a Summary Log of Cheapest Upgrade Found print("") print("Cheapest Hacknet Upgrade Available;") print("Node : " + node); print("Item : " + item); print("Qty : " + qty); print("") print("Current Balance : $" + myMoney()); print("Upgrade Cost : $" + cheapest); print("") // After Determining the Cheapest Upgrade we will wait for Balance to Increase Enough to Purchase (This is why we turned off logging) while (myMoney() < cheapest) { print("Waiting for funds to increase") sleep(3000); } // Call the Purchase Function purchase(node, item, qty); } // Run the Cheapest Upgrade Function in an Infinite Loop while(true) { check_cheapest() }
Uso
Después de guardar el script, puede ejecutarlo escribiendo:
ejecutar nombreDeTuScript.script
Ejemplo: ejecutar hacknet_infinity.script
Bajo el capó
Este script itera a través de todas las opciones de actualización, establece indicadores para la opción más barata y espera hasta que haya fondos suficientes para comprar.
Actualmente, no utiliza la función de cantidad, ya que la opción más económica siempre es comprar en unidades individuales para que su dinero trabaje para usted más rápido con el método de ingresos pasivos. Esta es la razón por la que la variable Qty se establece en 1 y no se sobrescribe en el bucle.
Si lee la API de Hacknet en el sitio web oficial, hay un script de ejemplo que usa un valor de 10 al comprar niveles básicos para Nodos. En mi opinión, comprar unidades individuales le generará más dinero a largo plazo debido a los rendimientos exponenciales de las compras más pequeñas de niveles individuales.
No soy un programador de JavaScript, entré en este juego sin ningún conocimiento de este lenguaje, solo tenía experiencia en Python. Agradecería que alguien quisiera hacer alguna manipulación de cadenas para mí en la sección de resumen del script para ordenarlo en menos líneas. \n\n 🙂
PD Esto no es asincrónico ya que no hay ningún beneficio en subprocesos múltiples para esta tarea. No importa cuántos recursos tengas, tu cuello de botella es el saldo bancario. Por lo tanto, la implementación a través de .script no solo es adecuada, sino que también es óptima, ya que utiliza comandos que consumen menos memoria.
Eso es todo lo que estamos compartiendo hoy para este Quemador de bits guía. Esta guía fue originalmente creada y escrita por Laingsta. En caso de que no actualicemos esta guía, puede encontrar la última actualización siguiendo este liga.