Dit script zal de aankoop van alle Hacknet-upgrades op de snelst mogelijke manier volledig automatiseren. De snelste methode is exponentiële rendementen die worden toegekend door te allen tijde de goedkoopste upgrade te selecteren, waardoor uw geld sneller voor u werkt. Bepaal de goedkoopste upgrade, wacht op geld, koop, spoel en herhaal.
Opmerking: RAM-gebruik is 5.7 GB
ES5-script maken
Dit script gebruikt de ES5 JavaScript-interpreter, anders aangeduid als Netscript 1.0, wat betekent dat een bestandsextensie van .script vereist is.
Maak in de Bitburner Terminal een nieuw script door het volgende te typen:
nano naamVanUwBestand.script
Voorbeeld: nano hacknet_infinite.script
Opmerking: voor dit script is 5.7 GB beschikbaar geheugen vereist
Scriptcode
Kopieer de inhoud van het script en sla ze op in het nieuwe scriptbestand dat u zojuist hebt gemaakt.
// 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() }
Gebruik
Nadat u het script heeft opgeslagen, kunt u het uitvoeren door te typen:
voer nameOfYourScript.script uit
Voorbeeld: voer hacknet_infinity.script uit
Onder de motorkap
Dit script doorloopt alle upgrade-opties, stelt vlaggen in voor de goedkoopste optie en wacht tot er genoeg geld is om te kopen.
Momenteel maakt het geen gebruik van de kwantiteitsfunctie, omdat de goedkoopste optie altijd is om in afzonderlijke eenheden te kopen om uw geld sneller voor u te laten werken volgens de passieve inkomensmethode. Dit is de reden waarom de variabele Qty is ingesteld op 1 en niet in de lus wordt overschreven.
Als je de Hacknet API op de officiële website leest, is er een voorbeeldscript dat een waarde van 10 gebruikt bij het kopen van basisniveaus voor Nodes. IMO-aankoop van afzonderlijke eenheden levert u op de lange termijn meer geld op vanwege het exponentiële rendement van de kleinere aankopen van afzonderlijke niveaus.
Ik ben geen JavaScript-programmeur, ik ging in dit spel zonder enige kennis van deze taal, alleen met een achtergrond in Python. Zou het op prijs stellen als iemand wat stringmanipulatie voor me wil doen in het samenvattingsgedeelte van het script om het op minder regels op te ruimen. \n\n
PS Dit is niet asynchroon omdat het geen zin heeft om deze taak te multithreaden. Het maakt niet uit hoeveel middelen je hebt, je knelpunt is het banksaldo. Daarom is implementatie via .script niet alleen geschikt, het is ook optimaal omdat het gebruik maakt van minder geheugenintensieve commando's.
Dat is alles wat we hiervoor vandaag delen Bitbrander gids. Deze handleiding is oorspronkelijk gemaakt en geschreven door Laingsta. Als we deze handleiding niet kunnen bijwerken, kunt u de laatste update vinden door deze te volgen link.