Here is a simple script, that can be started at any moment of the game. It will buy servers, find all accessible servers, open ports, nuke, find target servers, hack, grow, and weak servers. And will do it again and again.
/** @param {NS} ns **/ //additional function, needed to merge arrays. Array.prototype.unique = function() { var a = this.concat(); ~을 위한(var i=0; 나ns.getPurchasedServerCost(ram)) { var number = myservers.length + 1; var hostname = ns.purchaseServer("pserv-" + 숫자, ram); await ns.scp(파일, "집", hostname); ns.killall(hostname); } //Check ports power var portpower = [0, 0, 0, 0, 0]; var portcounter = 0; 만약에 (ns.FileExists("BruteSSH.exe")) { portpower[0] = 1 ; portcounter++ }; 만약에 (ns.FileExists("FTPCrack.exe")) { portpower[1] = 1 ; portcounter++ }; 만약에 (ns.FileExists("relaySMTP.exe")) { portpower[2] = 1 ; portcounter++ }; 만약에 (ns.FileExists("HTTPWorm.exe")) { portpower[3] = 1 ; portcounter++ }; 만약에 (ns.FileExists("SQLInject.exe")) { portpower[4] = 1 ; portcounter++ }; //Nuke servers if (serversnuked.indexOf(element) >= 0) {ns.print("Already nuked " + element)} else if (ns.hasRootAccess(element)) { serversnuked.push(element); await ns.scp(파일, "집", element); } else if (ns.getServernumportsRequired(element) > portcounter) { ns.print("No port power for " + element) } else if (ns.gethackinglevel() < ns.getServerRequiredHackingLevel(element)) { ns.print("No skill for" + element) } else { if (portpower[0]) { ns.brutessh(element) }; if (portpower[1]) { ns.ftpcrack(element) }; if (portpower[2]) { ns.relaysmtp(element) }; if (portpower[3]) { ns.httpworm(element) }; if (portpower[4]) { ns.sqlinject(element) }; ns.nuke(element); ns.print("Nuked " + element); //ns.installBackdoor(element); //Will work in mid game //To push files await ns.scp(files, "home", element); await ns.killall(element); serversnuked.push(element); ns.print("all files on " + element); } //To find a target, You can comment this part and just use targetserver if(serversnuked.indexOf(element) >= 0){ var money = ns.getServerMaxMoney(element); var security = ns.getServerMinSecurityLevel(element); var koef = money / security * 0.000001 ; var namekoef = [koef, element]; 만약에(koefs.some(el => el >= koef)) { koefs.push(koef); } 또 다른 { targetserver = element; koefs.push(koef); ns.print(targetserver); } } //Launch action on all servers nuked. //Check what should be done, weak, grow or hack, if hack, then use ony 80% of threads and anothers for grow. //You can change % to experiment, try to do hack often but for small portions. ~을 위한(var rs of serversnuked){ var action; 만약에((ns.getServerMaxRam(rs) - ns.getServerUsedRam(rs)) >= 2) { 만약에 (ns.getServerSecurityLevel(targetserver) > ns.getServerMinSecurityLevel(targetserver) + 5) { action = "weaken" } else if (ns.getServerMoneyAvailable(targetserver) < ns.getServerMaxMoney(targetserver) * 0.85) { action = "grow" } else { action = "hack" } ns.print("We have " + action + " for " + targetserver); if(action == "hack"){ var threads = Math.floor((ns.getServerMaxRam(rs) - ns.getServerUsedRam(rs)) / 1.75); if(ns.isRunning("hack.ns", rs, targetserver)) { ns.exec("grow.ns", rs, threads, targetserver); ns.print("Grow on " + rs + " for " + targetserver); } if(threads >= 3) { threads = threads * 0.8; ns.exec("hack.ns", rs, 스레드, targetserver); ns.print("Hack on " + rs + " ~을 위한 " + targetserver); } 또 다른{ ns.exec("hack.ns", rs, 스레드, targetserver); ns.print("Hack on " + rs + " ~을 위한 " + targetserver); } } 또 다른{ var threads = Math.floor((ns.getServerMaxRam(rs) - ns.getServerUsedRam(rs)) / ns.getScriptRam( action + ".ns")); ns.exec(action + ".ns", rs, 스레드, targetserver); ns.print(action + " ~에 " + rs + " ~을 위한 " + targetserver); } } 또 다른{} } } } }
이것이 오늘 우리가 공유하는 모든 것입니다. 비트버너 가이드. 이 가이드는 원래 작성자가 작성하고 작성했습니다. Nyarlathotep. 이 가이드를 업데이트하지 못한 경우, 다음을 수행하여 최신 업데이트를 찾을 수 있습니다. 링크.