تخطى الى المحتوى
أعمال الشغب

أعمال الشغب

  • بيت
  • أخبار
  • خطوط إرشاد
  • أدلة الفيديو
  • ملاحظات التصحيح
  • بلغ عن سوء معاملة
  • تبديل شكل البحث
بيتبورنر

بيتبورنر – Advanced Auto Farm Script

نشر على 12/19/202112/19/2021 بواسطة Nekotorep 1 تعليق على بيتبورنر – Advanced Auto Farm Script
  • عنوان: بيتبورنر
  • تاريخ الافراج عنه:
  • المطور:
  • الناشر:
المعلومات حول Bitburner لا تزال غير كاملة. الرجاء مساعدتنا في ملء تفاصيل اللعبة باستخدام هذا نموذج الاتصال.

Inspired by this basic auto farm, automate all servers with improved performances.

Notice

ملحوظة: Require at least 8.1G on your ‘home’ server.

Create a ‘runner.js’ file on your home server, paste the content below on it then run it.

nano runner.js

افتراضيا, this script will not kill all other services running on each server. You can enforce it by running

run runner.js --kill

This script will use all your personally owned servers. The more you have, the more it’ll be efficient.

البرنامج النصي

/** @param {ن.س} نانوثانية **/
وظيفة التصدير غير المتزامنة الرئيسية(نانوثانية) {
  ns.disableLog('ALL');
  ns.enableLog('print');
  var options = ns.flags([
    ['kill', خطأ شنيع],
    ['hack', خطأ شنيع],
    ['grow', خطأ شنيع],
    ['weaken', خطأ شنيع],
    ['waitTime', 10],
    ['help', خطأ شنيع]
  ]);

  لو (options['help']) {
    ns.tail();
    ns.print(`Auto-script, options:
    * --قتل: Force kill every other process on every servers
    * --hack some-script.js: Replace hack script with some-script.js one
    * --grow some-script.js: Replace grow script with some-script.js one
    * --weaken some-script.js: Replace weaken script with some-script.js one
    * --waitTime 10: Wait time between two servers in ms, must be higher than 1
    * --يساعد: show this message
    `);
    return;
  }

  // Creating scripts
  var hack = options['hack'] || '/temp/hack.js',
    grow = options['grow'] || '/temp/grow.js',
    weaken = options['weaken'] || '/temp/weaken.js';

  لو (!options['hack']) {
    await ns.write(hack, `
      /** @param {ن.س} نانوثانية **/
      وظيفة التصدير غير المتزامنة الرئيسية(نانوثانية) {
          await ns.hack(ns.args[0]);
      }
    `, 'w');
  }
  لو (!options['grow']) {
    await ns.write(grow, `
      /** @param {ن.س} نانوثانية **/
      وظيفة التصدير غير المتزامنة الرئيسية(نانوثانية) {
          await ns.grow(ns.args[0]);
      }
    `, 'w');
  }
  لو (!options['weaken']) {
    await ns.write(weaken, `
      /** @param {ن.س} نانوثانية **/
      وظيفة التصدير غير المتزامنة الرئيسية(نانوثانية) {
          await ns.weaken(ns.args[0]);
      }
    `, 'w');
  }

  // Divs variables declarations
  var serverList = ns.scan('home'),
    serverCount = [serverList.length, 0],
    softwares = [0, 0, 0, 0, 0, 0],
    softwaresCount = 0,
    scanLevel = 2,
    index = 0,
    notProxyList = [],
    proxyList = ['home'],
    hackables = [],
    growables = [],
    weakenables = [],
    linked,
    target,
    proxyTarget,
    depth = 0,
    checked = 0,
    hackType;

  // Checking softwares
  if (ns.fileExists('BruteSSH.exe')) {
    softwares[0] = 1;
    softwaresCount++;
  };
  لو (ns.fileExists('FTPCrack.exe')) {
    softwares[1] = 1;
    softwaresCount++;
  };
  لو (ns.fileExists('relaySMTP.exe')) {
    softwares[2] = 1;
    softwaresCount++;
  };
  لو (ns.fileExists('HTTPWorm.exe')) {
    softwares[3] = 1;
    softwaresCount++;
  };
  لو (ns.fileExists('SQLInject.exe')) {
    softwares[4] = 1;
    softwaresCount++;
  };
  لو (ns.fileExists('DeepscanV1.exe')) {
    scanLevel += 2;
  };
  لو (ns.fileExists('DeepscanV2.exe')) {
    scanLevel += 5;
  };

  ns.print('/---/ SEARCHING \\---\\\n-- Default --\n > ' + serverList.join('\n > ') + '\n>- Scan Limit: L' + [scanLevel + 1] + ' -<');
  بينما (فِهرِس <= serverCount[depth] - 1 && depth < scanLevel) {
    linked = ns.scan(serverList[checked]);
    checked++;
    ل (اسمحوا الفهرس = 0; فِهرِس <= linked.length - 1; مؤشر ++) { target = linked[فِهرِس]; لو (target != 'home' && !serverList.includes(target)) { serverList.push(target); ns.print('L' + [depth + 2] + ' > ' + target);
        serverCount[depth + 1]++;
      }
    }
    لو (index == serverCount[depth] - 1) {
      index = 0;
      depth++;
      serverCount.push(0);
    } else {
      مؤشر ++;
    };
  }

  ns.print('/-------/ CHECKING \\-------\\');
  ل (اسمحوا الفهرس = 0; فِهرِس <= serverList.length - 1; مؤشر ++) { target = serverList[فِهرِس]; لو (ns.getPurchasedServers().includes(target)) { await ns.scp([hack, grow, weaken], 'home', target); لو (options['kill']) { ns.killall(target); } proxyList.push(target); ns.print(' >>>  PROXY ' + target);
    } else if (ns.getServerNumPortsRequired(target) > softwaresCount) {
      ns.print(' >X<  SOFTWARE ' + target);
    } else if (ns.getServerMaxRam(target) < 2) { ns.print(' >X<  NO RAM ' + target);
    } else if (ns.getHackingLevel() < ns.getServerRequiredHackingLevel(target)) { ns.print(' >X< SKILL ' + target); } else { لو (softwares[0]) { ns.brutessh(target); }; لو (softwares[1]) { ns.ftpcrack(target); }; لو (softwares[2]) { ns.relaysmtp(target); }; لو (softwares[3]) { ns.httpworm(target); }; لو (softwares[4]) { ns.sqlinject(target); }; ns.nuke(target); await ns.scp([hack, grow, weaken], 'home', target); لو (options['kill']) { ns.killall(target); } لو (ns.getServerMoneyAvailable(target) == 0) { ns.print(' >X< NO MONEY ' + target); proxyList.push(target); ns.print(' >>>  PROXY ' + target);
      } else {
        notProxyList.push(target);
        ns.print(' >>>  VALID ' + target);
      }
    }
  }

  لو (notProxyList.length > 0) {
    ns.print('/------------/ HACKING \\------------\\');
    بينما (حقيقي) {
      hackables = [];
      growables = [];
      weakenables = [];
      ل (target of notProxyList) {
        // Priority for targets: weaken, then grow, then hack
        if (ns.getServerSecurityLevel(target) > ns.getServerMinSecurityLevel(target) + 5) {
          hackType = weaken;
          weakenables.push(target);
        } else if (ns.getServerMoneyAvailable(target) < ns.getServerMaxMoney(target) * 0.80) { hackType = grow; growables.push(target); } else { hackType = hack; hackables.push(target); } لو ((ns.getServerMaxRam(target) - ns.getServerUsedRam(target)) > ns.getScriptRam(hackType)) {
          ns.exec(hackType, target, Math.floor((ns.getServerMaxRam(target) - ns.getServerUsedRam(target)) / ns.getScriptRam(hackType)), target);
          ns.print('|||||||||| ' + hackType + ' --> ' + target + ' ||||||||||');
        }
      }
      ل (target of proxyList) {
        // Priority for proxies: hack, then grow, then weaken
        if (hackables.length > 0) {
          proxyTarget = hackables[Math.floor(Math.random() * hackables.length)];
          hackType = hack;
        } else if (growables.length > 0) {
          proxyTarget = growables[Math.floor(Math.random() * growables.length)];
          hackType = grow;
        } else if (weakenables.length > 0) {
          proxyTarget = weakenables[Math.floor(Math.random() * weakenables.length)];
          hackType = weaken;
        }
        لو ((ns.getServerMaxRam(target) - ns.getServerUsedRam(target)) > ns.getScriptRam(hackType)) {
          ns.exec(hackType, target, Math.floor((ns.getServerMaxRam(target) - ns.getServerUsedRam(target)) / ns.getScriptRam(hackType)), proxyTarget);
          ns.print('|||||||||| proxy --> ' + target + ' --> ' + hackType + ' --> ' + proxyTarget + ' ||||||||||');
        }
      }
      // Await n ms between each servers to avoid issue with the infinite loop
      await ns.sleep(options['waitTime']);
    }
  } else {
    ns.print('Error, no server available.');
  }
}

Advanced Usage

You can see all options in-game with

run runner.js --help

You are allowed to use your own hack, grow, weaken script. You can also customize the waiting time between each server. تحذير. Always use more that 1ms or you’ll freeze your game.

هذا كل ما نشاركه اليوم من أجل هذا بيتبورنر مرشد. تم إنشاء هذا الدليل وكتابته في الأصل بواسطة Nekotorep. في حالة فشلنا في تحديث هذا الدليل, يمكنك العثور على آخر تحديث باتباع هذا وصلة.

إذا كنت تعتقد أن أيًا من محتويات هذا الموقع ينتهك حقوقك, بما في ذلك حقوق الملكية الفكرية الخاصة بك, يرجى الاتصال بنا على الفور باستخدام نموذج الاتصال الخاص بنا.
خطوط إرشاد العلامات:بيتبورنر

آخر الملاحة

المنشور السابق: خمس ليال في فريدي: Security Breach – How to Beat the Daycare Puzzle
المشاركة التالية: Ready or Not – The Operators Tactical Handbook

تعليق (1) on “Bitburner – Advanced Auto Farm Script”

  1. leofev يقول:
    08/20/2022 في 8:24 أكون

    As of release 2.0.1, the last two arguments of the scp function need to be flipped. It won’t throw errors, but you’ll find that it will only be using the home computer to run the grow/weaken/hack cycle.

    رد

ترك الرد إلغاء الرد

لن يتم نشر عنوان بريدك الإلكتروني. تم وضع علامة على الحقول المطلوبة *

  • عنوان: بيتبورنر
  • تاريخ الافراج عنه:
  • المطور:
  • الناشر:
المعلومات حول Bitburner لا تزال غير كاملة. الرجاء مساعدتنا في ملء تفاصيل اللعبة باستخدام هذا نموذج الاتصال.

تنصل

ويستمد كل محتوى استشهد من مصادرها الخاصة. إذا كنت تعتقد أننا استخدمنا المحتوى الخاص بك دون إذن, تأكد من الوصول إلينا وسنأخذ الأمر على محمل الجد.
  • معلومات عنا
  • اتصل بنا
  • سياسة الخصوصية
  • شروط الخدمة

حقوق النشر © 2025 أعمال الشغب.

مشغل بواسطة PressBook News وورد موضوع