Einfacher Bot, der Mathematik verwendet, um das profitabelste Upgrade auszuwählen.
Wie es funktioniert
Der Bot macht die folgenden Schritte aus.
- Scheckskosten- und Produktionswachstum aller möglichen Upgrades
- Berechnet das profitable Verhältnis jedes Upgrades
- Sortiert Elemente nach dem Verhältnis absteigend
- Wählt das erste Element
- Schecks, wenn Sie jetzt ein Upgrade erwerben können, wenn nicht, Es wartet, um Geld zu sammeln
- Überprüft, ob Sie einen neuen Knoten in weniger als kaufen können 30 Sekunden (Sie können diesmal anpassen), Wenn ja, es kauft es
- Wiederholen…
Profitable Verhältnis = Produktionswachstum / Upgradekosten
Produktionswachstum = Produktion nach dem Upgrade / Aktuelle Produktion
Dieser Leitfaden basiert auf meinem vorherigen „Automatisierung für Hacknetknoten“.
Verwendung
Die folgenden Schritte unternehmen.
- Führen Sie das Terminal aus
- Typ ‚nano hacknet-bot.js‘
- Kopieren und fügen Sie den folgenden Code in diese Datei ein und fügen Sie sie ein
- Speichern Sie die Datei (Strg + S)
- Zurück zum Terminal
- Typ ‚Führen Sie Hacknet-Bot.js aus‘
/** @param {NS} ns **/ Asynchrone Funktion main exportieren(ns) { // helpers const getMoney = () => ns.getPlayer().Geld; const GetProd = (Ebene, RAM, Kerne) => (Ebene * 1.5) * Math.pow(1.035, RAM - 1) * ((Kerne + 5) / 6); // your production multiplier const PROD_MULTIPLIER = ns.getHacknetMultipliers().Produktion; // Maximale Wartezeit für das Sammeln von Geld für einen neuen Knoten (Standard 30s) const waiting_time = ns.args[0] || 30; während (WAHR) { const -Verhältnisse = []; Lassen Sie HackNetProduction = 0; // loop through all nodes for (lass index = 0; Index < ns.hacknet.numnodes(); Index ++) { // Holen Sie sich aktuelle Knotenstatistiken const { Ebene, RAM, Kerne, Produktion } = ns.hacknet.getnodestats(Index); Hacknetproduktion += Produktion; // Erhalten Sie Upgrades cost const Levelupgrade = ns.hacknet.getlevelupgradecost(Index); const ramupgradecost = ns.hacknet.getramupgradecost(Index); const coreUpgradecost = ns.hacknet.getCoreupgradescost(Index); // Holen Sie sich Prod. Wachstum / Kostenverhältnisse const Levelupgraderatio = ((GetProd(Ebene + 1, RAM, Kerne) * Prod_multiplier) - Produktion) / Levelupgradecost; const ramupgraderatio = ((GetProd(Ebene, RAM * 2, Kerne) * Prod_multiplier) - Produktion) / Ramupgradecost; const coreUpgraderatio = ((GetProd(Ebene, RAM, Kerne + 1) * Prod_multiplier) - Produktion) / CoreUpgradescost; // Mögliche Upgrades der aktuellen Knoten const currentNodeUpgrades = [ {Verhältnis: LevelUpgrAgeratio, kosten: Levelupgradecost, Knotenindex: Index, Aktualisierung: "Ebene"}, {Verhältnis: Ramuppraroad, kosten: Ramupgradecost, Knotenindex: Index, Aktualisierung: "RAM"}, {Verhältnis: CoreUpgraderatio, kosten: CoreUpgradescost, Knotenindex: Index, Aktualisierung: "Kern"} ]; // Drücken Sie aktuelle Knoten -Upgrades auf alle Upgrades -Verhältnisse.push(...currentNodeUpgrades); } // Holen Sie sich das profitabelste Upgrade const { kosten, Knotenindex, Aktualisierung } = Verhältnisse.Sort((A, B) => B.Ratio - A.Ratio)[0]; // wait until you have the money for upgrade while (Getmoney() < kosten) { warte auf ns.sleep(1); } // Führen Sie den Upgrade -Switch aus (Aktualisierung) { Fall "Ebene": Warten Sie ns.hacknet.upgradelevel(Knotenindex); brechen; Fall "RAM": Warten Sie ns.hacknet.upgraseram(Knotenindex); brechen; Fall "Kern": Warten Sie ns.hacknet.upgradecore(Knotenindex); brechen; Standard: weitermachen; } // Überprüfen Sie, ob Sie einen neuen Knoten const baufasenodecost = ns.hacknet.getPurchasenodecost kaufen können(); const vermisste moneyfornewnode = baufassendecost - Getmoney(); Wenn (MissingMoneyFornewnode > 0 && MissingMoneyFornewnode < Hacknetproduktion * Waiting_Time) { // Wenn Sie auf den Kaufknoten weniger als Waiting_Time warten müssen (in Sekunden) program waits to collect money while (Getmoney() < Einkäufe) { warte auf ns.sleep(1); } ns.hacknet.purchassenode(); } // sleep 1ms to prevent crash because of infinite loop await ns.sleep(1); } }
Sie können die Zeit des Wartens auf den Kaufknoten anpassen (Standardmäßig 30er Jahre) durch Übergeben eines zusätzlichen Skriptarguments. Zum Beispiel:
Führen Sie Hacknet-Bot.js aus 120
Das ist alles, was wir heute dafür teilen Bitburner Führung. Dieser Leitfaden wurde ursprünglich erstellt und geschrieben von SYW1. Für den Fall, dass wir diesen Leitfaden nicht aktualisieren können, Sie können das neueste Update finden, indem Sie diesem folgen Verknüpfung.