Вдохновлен этой основной авто, фермой, Автоматизируйте все серверы с улучшенными выступлениями.
Уведомление
Примечание: Требуется не менее 8,1 г в своем доме’ сервер.
Создайте ‘runner.js’ Файл на домашнем сервере, Вставьте контент ниже на нем, затем запустите его.
Nano Runner.js
По умолчанию, Этот скрипт не убьет все другие службы, работающие на каждом сервере. Вы можете применить его, работая
Run runner.js -Kill
Этот скрипт будет использовать все ваши личные серверы. Чем больше у вас есть, Чем больше это будет эффективно.
Скрипт
/** @парам {НС} нс **/ экспортировать асинхронную функцию main(нс) { ns.disableLog('ВСЕ'); ns.enablelog('Печать'); var options = ns.flags([ ['убийство', ЛОЖЬ], ['взломать', ЛОЖЬ], ['расти', ЛОЖЬ], ['ослабить', ЛОЖЬ], ['wallime', 10], ['помощь', ЛОЖЬ] ]); если (параметры['помощь']) { нс.хвост(); нс.принт(`Авторация, параметры: * --убийство: Сила убить каждый другой процесс на каждом сервере * --взломать some-script.js: Заменить сценарий взлома на some-script.js One * --выращивать some-script.js: Заменить скрипт Grow на nefcipt.js One * --Ослабьте некоторые скидки.js: Заменить Slease Script на Some-script.js One * --Поживание 10: Время ожидания между двумя серверами в MS, должен быть выше, чем 1 * --помощь: show this message `); возвращаться; } // Creating scripts var hack = options['взломать'] || '/temp/hack.js', выращивать = варианты['расти'] || '/temp/grow.js', Ослабьте = варианты['ослабить'] || '/temp/weaken.js'; если (!параметры['взломать']) { жду ns.write(взломать, ` /** @парам {НС} нс **/ экспортировать асинхронную функцию main(нс) { жду ns.hack(ns.args[0]); } `, 'w'); } если (!параметры['расти']) { жду ns.write(расти, ` /** @парам {НС} нс **/ экспортировать асинхронную функцию main(нс) { ждать ns.grow(ns.args[0]); } `, 'w'); } если (!параметры['ослабить']) { жду ns.write(ослабить, ` /** @парам {НС} нс **/ экспортировать асинхронную функцию main(нс) { жду ns.weaken(ns.args[0]); } `, 'w'); } // Divs variables declarations var serverList = ns.scan('дом'), ServerCount = [Serverlist.length, 0], Softwares = [0, 0, 0, 0, 0, 0], Softwarescount = 0, Scanlevel = 2, index = 0, notproxylist = [], Proxylist = ['дом'], Hackables = [], выращиваемые = [], Ослабление = [], связанный, цель, Прокситард, глубина = 0, проверено = 0, Хактип; // 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; }; нс.принт('/---/ SEARCHING \\---\\\n-- Default --\n > ' + Serverlist.join('\n > ') + '\n>- Предел сканирования: L ' + [сканирование + 1] + ' -<'); пока (индекс <= ServerCount[глубина] - 1 && глубина < сканирование) { Linked = ns.scan(сервер[проверено]); проверен ++; для (Пусть индекс = 0; индекс <= linked.length - 1; Индекс ++) { Target = Linked[индекс]; если (цель != 'Home' && !Serverlist.includes(цель)) { Serverlist.push(цель); нс.принт(L ' + [глубина + 2] + ' > ' + цель); ServerCount[глубина + 1]++; } } если (index == ServerCount[глубина] - 1) { index = 0; глубина ++; servercount.push(0); } еще { Индекс ++; }; } нс.принт('/-------/ CHECKING \\-------\\'); для (Пусть индекс = 0; индекс <= serverlist.length - 1; Индекс ++) { target = serverlist[индекс]; если (ns.getpurchedservers().Включает(цель)) { ожидайте ns.scp([взломать, расти, ослабить], 'дом', цель); если (параметры['убийство']) { ns.killall(цель); } Proxylist.push(цель); нс.принт(' >>> Прокси ' + цель); } еще если (ns.getservernumportsrequired(цель) > Softwarescount) { нс.принт(' >Х< ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ' + цель); } еще если (ns.getservermaxram(цель) < 2) { нс.принт(' >Х< Нет барана ' + цель); } еще если (ns.gethackingel() < ns.getserverrequiredhackinglel(цель)) { нс.принт(' >Х< НАВЫК ' + цель); } еще { если (Softwares[0]) { ns.brutessh(цель); }; если (Softwares[1]) { ns.ftpcrack(цель); }; если (Softwares[2]) { ns.reelaysmtp(цель); }; если (Softwares[3]) { ns.httpworm(цель); }; если (Softwares[4]) { ns.sqlinject(цель); }; Ns.wull(цель); ожидайте ns.scp([взломать, расти, ослабить], 'дом', цель); если (параметры['убийство']) { ns.killall(цель); } если (ns.getServerMoneyAvailable(цель) == 0) { нс.принт(' >Х< Нет денег ' + цель); Proxylist.push(цель); нс.принт(' >>> Прокси ' + цель); } еще { notproxylist.push(цель); нс.принт(' >>> ДЕЙСТВИТЕЛЬНЫЙ ' + цель); } } } если (notproxylist.length > 0) { нс.принт('/------------/ HACKING \\------------\\'); пока (истинный) { Hackables = []; выращиваемые = []; Ослабление = []; для (цель нотапроксилиста) { // Приоритет для целей: ослабить, тогда выращивать, then hack if (ns.getserversecuritylevel(цель) > ns.getserverminsecuritylevel(цель) + 5) { Hacktype = ослаблен; Освобождаемые. Пуш(цель); } еще если (ns.getServerMoneyAvailable(цель) < ns.getservermaxmoney(цель) * 0.80) { Hacktype = выращивать; растущие. Пуш(цель); } еще { Hacktype = Hack; Hackables.push(цель); } если ((ns.getservermaxram(цель) - ns.getserverusedram(цель)) > ns.getscriptram(Хактип)) { ns.exec(Хактип, цель, Math.floor((ns.getservermaxram(цель) - ns.getserverusedram(цель)) / ns.getscriptram(Хактип)), цель); нс.принт('|||||||||| ' + Хактип + ' -> ' + цель + ' ||||||||||'); } } для (цель проксилиста) { // Приоритет для прокси: взломать, тогда выращивать, then weaken if (Hackables.length > 0) { ProxyTarget = Hackables[Math.floor(Math.random() * Hackables.length)]; Hacktype = Hack; } еще если (растущие > 0) { ProxyTarget = Growables[Math.floor(Math.random() * растущие)]; Hacktype = выращивать; } еще если (Освобождаемые. Длина > 0) { ProxyTarget = ослабление[Math.floor(Math.random() * Освобождаемые. Длина)]; Hacktype = ослаблен; } если ((ns.getservermaxram(цель) - ns.getserverusedram(цель)) > ns.getscriptram(Хактип)) { ns.exec(Хактип, цель, Math.floor((ns.getservermaxram(цель) - ns.getserverusedram(цель)) / ns.getscriptram(Хактип)), Прокситард); нс.принт('|||||||||| прокси -> ' + цель + ' -> ' + Хактип + ' -> ' + Прокситард + ' ||||||||||'); } } // Await n ms between each servers to avoid issue with the infinite loop await ns.sleep(параметры['wallime']); } } еще { нс.принт('Ошибка, нет сервера.); } }
Расширенное использование
Вы можете увидеть все варианты в игре с
Run Runner.js -Help
Вам разрешено использовать свой собственный взлом, расти, Ослабьте сценарий. Вы также можете настроить время ожидания между каждым сервером. Предупреждение. Всегда используйте больше этого 1 мс, или вы замочите свою игру.
Это все, чем мы делимся сегодня для этого. Битбернер гид. Это руководство было первоначально создано и написано Nekotorep. На случай, если нам не удастся обновить это руководство, вы можете найти последнее обновление, следуя этому связь.
На расстоянии 2.0.1, Последние два аргумента функции SCP должны быть перевернуты. Это не бросит ошибки, Но вы обнаружите, что он будет использовать только домашний компьютер для запуска цикла выращивания/ослабления/взлома.