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 {ن.س} نانوثانية **/ //additional function, needed to merge arrays. Array.prototype.unique = function() { var a = this.concat(); ل(var i=0; أناns.getPurchasedServerCost(كبش)) { var number = myservers.length + 1; var hostname = ns.purchaseServer("pserv-" + رقم, كبش); await ns.scp(files, "home", 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(files, "home", 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); } else { 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, threads, targetserver); ns.print("Hack on " + rs + " ل " + targetserver); } else{ ns.exec("hack.ns", rs, threads, targetserver); ns.print("Hack on " + rs + " ل " + targetserver); } } else{ var threads = Math.floor((ns.getServerMaxRam(rs) - ns.getServerUsedRam(rs)) / ns.getScriptRam( action + ".نانوثانية")); ns.exec(action + ".نانوثانية", rs, threads, targetserver); ns.print(action + " على " + rs + " ل " + targetserver); } } else{} } } } }
هذا كل ما نشاركه اليوم من أجل هذا بيتبورنر مرشد. تم إنشاء هذا الدليل وكتابته في الأصل بواسطة Nyarlathotep. في حالة فشلنا في تحديث هذا الدليل, يمكنك العثور على آخر تحديث باتباع هذا وصلة.