コンテンツにスキップ
ライオットビット

ライオットビット

  • 家
  • ニュース
  • ガイド
  • ビデオガイド
  • パッチノート
  • 不正行為を報告する
  • 検索フォームを切り替え
ビットバーナー

ビットバーナー – 高度な自動ファーム スクリプト

ポストする 12/19/202112/19/2021 に ネコトレプ 1 コメント の上 ビットバーナー – 高度な自動ファーム スクリプト
  • タイトル: ビットバーナー
  • 発売日:
  • 開発者:
  • 出版社:
Bitburner に関する情報はまだ不完全です. これを使用してゲームの詳細を記入するのにご協力ください。 お問い合わせフォーム.

この基本的な自動農場からインスピレーションを得た, すべてのサーバーを自動化してパフォーマンスを向上させる.

知らせ

ノート: 「自宅」には少なくとも 8.1G が必要です’ サーバ.

「runner.js」を作成する’ ホームサーバー上のファイル, 以下の内容を貼り付けて実行します.

ナノランナー.js

デフォルトでは, このスクリプトは、各サーバーで実行されている他のすべてのサービスを強制終了しません。. 実行することで強制できます

runner.js --kill を実行します

このスクリプトは個人所有のサーバーをすべて使用します. 持っているほど, より効率的になります.

スクリプト

/** @param {NS} ns **/
非同期関数メインのエクスポート(ns) {
  ns.disableLog('全て');
  ns.enableLog(「印刷」);
  var オプション = ns.flags([
    ['殺す', 間違い],
    ['ハック', 間違い],
    ['育つ', 間違い],
    ['弱める', 間違い],
    ['待ち時間', 10],
    ['ヘルプ', 間違い]
  ]);

  もし (オプション['ヘルプ']) {
    ns.tail();
    ns.print(`自動スクリプト, オプション:
    * --殺す: すべてのサーバー上の他のすべてのプロセスを強制終了します
    * --some-script.js をハックする: ハックスクリプトを some-script.js のものに置き換えます
    * --some-script.js を成長させる: 成長スクリプトを some-script.js のものに置き換えます
    * --some-script.js を弱める: 弱化スクリプトを some-script.js のものに置き換えます
    * --待ち時間 10: 2 つのサーバー間の待機時間 (ミリ秒), よりも高くなければなりません 1
    * --ヘルプ: show this message
    `);
    戻る;
  }

  // Creating scripts
  var hack = options['ハック'] || '/temp/hack.js',
    成長 = オプション['育つ'] || '/temp/grow.js',
    弱体化 = オプション['弱める'] || '/temp/weaken.js';

  もし (!オプション['ハック']) {
    ns.writeを待つ(ハック, `
      /** @param {NS} ns **/
      非同期関数メインのエクスポート(ns) {
          ns.hackを待つ(ns.args[0]);
      }
    `, 「わ」);
  }
  もし (!オプション['育つ']) {
    ns.writeを待つ(育つ, `
      /** @param {NS} ns **/
      非同期関数メインのエクスポート(ns) {
          ns.grow を待つ(ns.args[0]);
      }
    `, 「わ」);
  }
  もし (!オプション['弱める']) {
    ns.writeを待つ(弱める, `
      /** @param {NS} ns **/
      非同期関数メインのエクスポート(ns) {
          ns.弱くなるまで待つ(ns.args[0]);
      }
    `, 「わ」);
  }

  // Divs variables declarations
  var serverList = ns.scan('家'),
    サーバー数 = [サーバーリストの長さ, 0],
    ソフトウェア = [0, 0, 0, 0, 0, 0],
    ソフトウェア数 = 0,
    スキャンレベル = 2,
    インデックス = 0,
    notProxyList = [],
    プロキシリスト = ['家'],
    ハッキング可能なもの = [],
    栽培可能なもの = [],
    弱者 = [],
    リンクされた,
    ターゲット,
    プロキシターゲット,
    深さ = 0,
    チェック済み = 0,
    ハックタイプ;

  // Checking softwares
  if (ns.file存在します(「BruteSSH.exe」)) {
    ソフトウェア[0] = 1;
    ソフトウェアカウント++;
  };
  もし (ns.file存在します(「FTPCrack.exe」)) {
    ソフトウェア[1] = 1;
    ソフトウェアカウント++;
  };
  もし (ns.file存在します(「リレーSMTP.exe」)) {
    ソフトウェア[2] = 1;
    ソフトウェアカウント++;
  };
  もし (ns.file存在します(「HTTPワーム.exe」)) {
    ソフトウェア[3] = 1;
    ソフトウェアカウント++;
  };
  もし (ns.file存在します(「SQLInject.exe」)) {
    ソフトウェア[4] = 1;
    ソフトウェアカウント++;
  };
  もし (ns.file存在します(「ディープスキャンV1.exe」)) {
    スキャンレベル += 2;
  };
  もし (ns.file存在します(「ディープスキャンV2.exe」)) {
    スキャンレベル += 5;
  };

  ns.print('/---/ \---\n- を検索しています- デフォルト --n > ' + サーバーリスト.join('n > ') + 'n>- スキャン制限: L' + [スキャンレベル + 1] + ' -<');
  その間 (索引 <= サーバー数[深さ] - 1 && 深さ < スキャンレベル) {
    リンク = ns.scan(サーバーリスト[チェック済み]);
    チェック済み++;
    ために (インデックス = にしてみましょう 0; 索引 <= リンクされた長さ - 1; インデックス++) { ターゲット = リンクされている[索引]; もし (ターゲット !=「家」 && !サーバーリスト.includes(ターゲット)) { サーバーリスト.push(ターゲット); ns.print(「L」 + [深さ + 2] + ' > ' + ターゲット);
        サーバー数[深さ + 1]++;
      }
    }
    もし (インデックス == サーバー数[深さ] - 1) {
      インデックス = 0;
      深さ++;
      サーバーカウント.プッシュ(0);
    } それ以外 {
      インデックス++;
    };
  }

  ns.print('/ -  -  - -/ チェック中 \ -  -  - -\');
  ために (インデックス = にしてみましょう 0; 索引 <=serverList.length - 1; インデックス++) { ターゲット = サーバーリスト[索引]; もし (ns.getPurchasedServers().含まれています(ターゲット)) { ns.scpを待ちます([ハック, 育つ, 弱める], '家', ターゲット); もし (オプション['殺す']) { ns.killall(ターゲット); } proxyList.push(ターゲット); ns.print(' >>>  プロキシ ' + ターゲット);
    } そうでなければ (ns.getServerNumPorts必須(ターゲット) > ソフトウェア数) {
      ns.print(' >バツ<  ソフトウェア ' + ターゲット);
    } そうでなければ (ns.getServerMaxRam(ターゲット) < 2) { ns.print(' >バツ<  RAMがありません」 + ターゲット);
    } そうでなければ (ns.getHackingLevel() < ns.getServerRequiredHackingLevel(ターゲット)) { ns.print(' >バツ< スキル ' + ターゲット); } それ以外 { もし (ソフトウェア[0]) { ns.ブルーテッシュ(ターゲット); }; もし (ソフトウェア[1]) { ns.ftpcrack(ターゲット); }; もし (ソフトウェア[2]) { ns.relaysmtp(ターゲット); }; もし (ソフトウェア[3]) { ns.httpworm(ターゲット); }; もし (ソフトウェア[4]) { ns.sqlinject(ターゲット); }; ns.核(ターゲット); ns.scpを待ちます([ハック, 育つ, 弱める], '家', ターゲット); もし (オプション['殺す']) { ns.killall(ターゲット); } もし (ns.getServerMoneyAvailable(ターゲット) == 0) { ns.print(' >バツ< お金がない』 + ターゲット); proxyList.push(ターゲット); ns.print(' >>>  プロキシ ' + ターゲット);
      } それ以外 {
        notProxyList.push(ターゲット);
        ns.print(' >>>  有効 ' + ターゲット);
      }
    }
  }

  もし (notProxyList.length > 0) {
    ns.print('/-----------/ ハッキング \------------\');
    その間 (真実) {
      ハッキング可能なもの = [];
      栽培可能なもの = [];
      弱者 = [];
      ために (notProxyList のターゲット) {
        // ターゲットの優先順位: 弱める, それから成長する, then hack
        if (ns.getServerSecurityLevel(ターゲット) > ns.getServerMinSecurityLevel(ターゲット) + 5) {
          hackType = 弱体化;
          弱者.push(ターゲット);
        } そうでなければ (ns.getServerMoneyAvailable(ターゲット) < ns.getServerMaxMoney(ターゲット) * 0.80) { ハックタイプ = 成長; グローアブル.プッシュ(ターゲット); } それ以外 { ハックタイプ = ハック; ハッカブルズ.プッシュ(ターゲット); } もし ((ns.getServerMaxRam(ターゲット) - ns.getServer UsedRam(ターゲット)) > ns.getScriptRam(ハックタイプ)) {
          ns.exec(ハックタイプ, ターゲット, 数学の床((ns.getServerMaxRam(ターゲット) - ns.getServer UsedRam(ターゲット)) / ns.getScriptRam(ハックタイプ)), ターゲット);
          ns.print('|||||||||| ' + ハックタイプ + ' --> ' + ターゲット + ' ||||||||||');
        }
      }
      ために (proxyList のターゲット) {
        // プロキシの優先順位: ハック, それから成長する, then weaken
        if (ハッカブル.長さ > 0) {
          proxyTarget = ハッキング可能なもの[数学の床(数学.ランダム() * ハッカブル.長さ)];
          ハックタイプ = ハック;
        } そうでなければ (成長可能な長さ > 0) {
          proxyTarget = グローアブル[数学の床(数学.ランダム() * 成長可能な長さ)];
          ハックタイプ = 成長;
        } そうでなければ (弱者.長さ > 0) {
          proxyTarget = 弱者[数学の床(数学.ランダム() * 弱者.長さ)];
          hackType = 弱体化;
        }
        もし ((ns.getServerMaxRam(ターゲット) - ns.getServer UsedRam(ターゲット)) > ns.getScriptRam(ハックタイプ)) {
          ns.exec(ハックタイプ, ターゲット, 数学の床((ns.getServerMaxRam(ターゲット) - ns.getServer UsedRam(ターゲット)) / ns.getScriptRam(ハックタイプ)), プロキシターゲット);
          ns.print('|||||||||| プロキシ  - > ' + ターゲット + ' --> ' + ハックタイプ + ' --> ' + プロキシターゲット + ' ||||||||||');
        }
      }
      // Await n ms between each servers to avoid issue with the infinite loop
      await ns.sleep(オプション['待ち時間']);
    }
  } それ以外 {
    ns.print('エラー, 利用可能なサーバーがありません。);
  }
}

高度な使用法

ゲーム内ですべてのオプションを確認できます

runner.js --help を実行します

独自のハックを使用することが許可されています, 育つ, スクリプトを弱める. 各サーバー間の待ち時間をカスタマイズすることもできます。 警告. 常に 1 ミリ秒以上使用するとゲームがフリーズします.

これが今日私たちがこの目的で共有するすべてです ビットバーナー ガイド. このガイドは元々、次の者によって作成および執筆されました。 ネコトレプ. このガイドを更新できなかった場合, これに従って最新のアップデートを見つけることができます リンク.

このサイトのコンテンツがあなたの権利を侵害していると思われる場合, あなたの知的財産権を含む, お問い合わせフォームを使用してすぐにご連絡ください.
ガイド タグ:ビットバーナー

ポストナビゲーション

前の投稿: ファイブ・ナイツ・アット・フレディーズ: セキュリティ侵害 – 保育園のパズルを解く方法
次の投稿: 準備ができているかどうか – オペレーター戦術ハンドブック

コメント (1) 「ビットバーナー」で – 高度な自動ファーム スクリプト”

  1. レオフェフ 言う:
    08/20/2022 で 8:24 午前

    発売現在 2.0.1, scp 関数の最後の 2 つの引数は反転する必要があります. エラーはスローされません, しかし、成長/弱体化/ハッキングのサイクルを実行するためにのみ自宅のコンピューターを使用していることがわかります。.

    返事

返信を残す 返信をキャンセル

あなたのメールアドレスは公開されません. 必須フィールドにマークが付いています *

  • タイトル: ビットバーナー
  • 発売日:
  • 開発者:
  • 出版社:
Bitburner に関する情報はまだ不完全です. これを使用してゲームの詳細を記入するのにご協力ください。 お問い合わせフォーム.

免責事項

引用されたすべてのコンテンツはそれぞれの情報源から得られています. 当社があなたのコンテンツを許可なく使用したと思われる場合, 必ずご連絡ください。真剣に対応させていただきます.
  • 私たちに関しては
  • お問い合わせ
  • プライバシーポリシー
  • 利用規約

著作権 © 2025 ライオットビット.

搭載 プレスブックニュース ワードプレスのテーマ