Dies ist ein automatisiertes Skript für Midgame (oder SF1+-Spiele), das Server kauft und erneut kauft. Es verfügt über bearbeitbare Variablen für zusätzliche Anpassungen.
Über diesen Bot
Dies ist ein Bot, der Folgendes tun wird:
- Kaufen Sie Server mit dem von Ihnen angegebenen RAM (Standard ist die Hälfte Ihres Heim-RAM, mindestens 32 GB)
- Laden Sie ein Skript Ihrer Wahl hoch und führen Sie es aus
- Vorlage zum Hochladen zusätzlicher Skripte Ihrer Wahl (z. B. wenn Ihr Hauptskript 3x Skripte aufruft wie meines)
- Wenn Sie maximale Server (25) haben und diese schwach sind (<25% Ihres Heim-RAM) und über genügend Geld für ein Upgrade verfügen, wird ein Ja/Nein-Feld zum Upgrade angezeigt. Dies löscht und rebuys.
Aufgrund der Logik im Inneren ist es mit 13.3 GB RAM ziemlich heftig, daher ist es nicht wirklich für ein sehr frühes Spiel geeignet.
Es sind einige grundlegende technische Kenntnisse erforderlich, um ein paar Codezeilen an Ihr Setup anzupassen. Lesen Sie die Anleitung sorgfältig durch.
Sie können einen Server-Rebuy erzwingen, indem Sie ihn mit dem Argument „f“ ausführen (z. B. „Server.js f ausführen“).
Das Skript
// Server-Kaufskript für Bitburner - https://danielyxie.github.io/bitburner/ , geschrieben von steamid/Meng // Läuft bis zufrieden, wird Server-Geld zurückkaufen ist ausreichend und Server ist schlechter als 25 % des Arbeitsspeichers. Mit 'f'-Argument ausführen, um Rebuy zu erzwingen // Version 1.22 // Zusätzliche Kommentare und MAIN_SCRIPT-Variable hinzugefügt, damit der Code für andere verwendbar ist. export async function main(ns) { // ~~~~~~~~~Bearbeitbar Variablen~~~~~~~~~~~ const SVRNAME = "plex"; // Welchen Hostnamen Ihre gekauften Server haben werden const MIN_RAM = 32; // Mindest-RAM, das Sie für einen Server kaufen möchten const SVR_RAM_RATIO = 2; // Ziel-RAM für Server ist "Home"-RAM, geteilt durch SVR_RAM_RATIO, muss = Potenz von 2 (0.5, 1, 2, 4 ...). z.B. '2' ist 50 % des Home-RAM const MAIN_SCRIPT = "breaker.js" // Name Ihres Hauptskripts, das Sie hochladen möchten // ~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~ let currentServers = ns.getPurchasedServers(); let ram = computeRam (); // Berechnet, wie viel RAM für den Server gekauft werden soll let i = currentServers.length; const serverMax = 25; // ab Bitburner v1.3 fest codierte max. Server // Überprüfen und sicherstellen, dass Server Skripte ausführen (Wiederherstellung nach einem erzwungenen Neustart) // Wenn der Server keine Skripte ausführt, vorhandenen Breaker überschreiben und ausführen. ns.print('Skripte auf bestehenden Servern starten...') for(let x = 0; x < currentServers.length; x++){ if (!ns.isRunning(MAIN_SCRIPT, currentServers[x])){ await ns. scp(MAIN_SCRIPT, aktuelleServer[x]); ns.exec (MAIN_SCRIPT, aktuelleServer[x], 1); } }; // Informationen zum Serverkauf const serverPriceInfoText = (ns.getPurchasedServerCost(ram) / 1000000).toFixed(2); ns.toast(`Serverpreis ist ${serverPriceInfoText} M`, "info"); ns.print(`im Begriff, Server @ ${ram}gb für ${serverPriceInfoText} zu kaufen`); await ns.sleep(15000) // then Kontinuierlich versuchen, Server zu kaufen, bis wir das Maximum erreicht haben while (i < serverMax) { // Prüfen, ob wir genug Geld haben, um einen Server zu kaufen if (ns.getServerMoneyAvailable("home" ) > ns.getPurchasedServerCost(ram)) { // wenn genug Geld, Server kaufen, benennen, Skripte hochladen und ausführen MAIN_SCRIPT let hostname = ns.purchaseServer(SVRNAME + i, ram); warte auf ns.scp (MAIN_SCRIPT, Hostname); // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Fügen Sie alle zusätzlichen Skripte hinzu, die Sie hier hochladen möchten, oder löschen Sie die Zeilen // ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~ Erwarte ns.scp("hackscript.js", Hostname); warte auf ns.scp("growscript.js", Hostname); warte auf ns.scp("weakscript.js", Hostname); // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ns.exec (MAIN_SCRIPT, Hostname, 1); ns.toast(`Server ${hostname} wurde gekauft`, "success") ++i; } else { ns.print(`kann noch nicht kaufen - Preis ist `+ ns.getPurchasedServerCost(ram)) await ns.sleep(20000) } } // end of while (ns.getPurchasedServerCost(ram) * 13) ){ / / wenn das Geld für ein Upgrade reicht.. let areYouSure = await ns.prompt(`möchtest du Server neu kaufen?
So wird es genutzt
So können Sie dieses Skript verwenden
- Terminal > nano „servers.js“
- füge den folgenden Code ein
- BEARBEITEN SIE DEN CODE – Zeile 13 + Zeilen 45-50
- Zeile 13: Ändern Sie „breaker.js“ in den Dateinamen Ihres Hauptskripts, das Sie auf dem Remote-Server ausführen möchten.
- Zeilen 45-50: Wenn Sie weitere Skripte hochladen möchten, dann ergänzen Sie auch diese Zeilen, wenn Sie sie nicht benötigen, dann löschen Sie sie zwischen den Zeilen. Beachten Sie, dass diese nicht automatisch ausgeführt werden, sie gehen davon aus, dass Ihr Hauptskript sie aufruft. Wenn Sie sie auch ausführen müssen, fügen Sie zusätzliche Zeilen hinzu
ns.exec("yourScriptNameHere.js", hostname, 1);
- Speichern
- Terminal > server.js ausführen
Hinweis: Wenn Sie die Datei nicht server.js benennen, ändern Sie Zeile 70 in den Namen der Datei, oder die Rebuy-Funktion funktioniert nicht.
Das ist alles, was wir heute dafür teilen Bitbrenner führen. Dieses Handbuch wurde ursprünglich erstellt und geschrieben von Meng. Falls wir dieses Handbuch nicht aktualisieren, finden Sie das neueste Update, indem Sie diesen folgen Link.
Ich habe nur mehrere Minuten damit verbracht, die Syntaxfehler zu beheben, bevor ich zumindest Teile davon verstehen konnte. Ich weiß nicht, ob die Website es vermasselt hat oder ob es ein Benutzerfehler war, aber so kann es niemand ausführen. Fast alle ifs sind zum Beispiel auskommentiert. die Zeilenumbrüche sind ein Chaos, wenn es welche gibt. Mehrere ; fehlen. Zuerst dachte ich, Sie versuchten, während sonst zu schreiben (entpuppte sich als ein anderer kommentierter if). Warum verwenden Sie nicht einfach let scriptArray = [„script1.js“, „script2.js“,…“, „scriptn.js“]; zu verwenden in ns.scp(scriptArray, hostname);? Benötigt einen scp statt 3, während jede Menge Skripte auf einmal hochgeladen werden. Und was zum Teufel versuchst du in der letzten Schleife zu tun? die Bedingung (ein Wert multipliziert mit 13) wäre immer wahr, wenn sie nicht auskommentiert wäre. Dieses Skript würde ständig „Wollen Sie Server neu kaufen?“ spammen und wahrscheinlich sofort das gesamte Geld des Spielers ausgeben. Vielleicht solltest du mit deinen Skripten bei reddit bleiben, dort bekommst du sofortiges Feedback und Verbesserungsvorschläge…