Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /** @param {NS} ns **/
- import { t } from "t.js"
- export async function main(ns) {
- ns.disableLog('sleep');
- ns.disableLog('getServerMoneyAvailable');
- var costlist = []; // numbered array with name:upgrade name, cost:upgrade cost
- var nn = ns.hacknet.numNodes();
- if (nn == 0) {
- var money = ns.getServerMoneyAvailable("home");
- while (money < ns.hacknet.getPurchaseNodeCost()) {
- await ns.sleep(1000);
- var money = ns.getServerMoneyAvailable("home");
- }
- ns.hacknet.purchaseNode();
- ++nn
- }
- var clevel;
- var dlevel;
- var elevel;
- var ram;
- /** upgrades list
- * a = upgrade pservs
- * b = buy additional hacknet
- * c = hacknet 'level' upgrade
- * d = hacknet 'ram' upgrade
- * e = hacknet 'cores' upgrade
- **/
- function calca() {
- if (!ns.serverExists('pserv-0')) {
- ram = 32;
- var costa = ns.getPurchasedServerCost(ram);
- var oba = { name: upgradea, cost: costa, test: 'Server Upgrade' };
- costlist.push(oba);
- }
- if (ns.serverExists('pserv-0')) {
- ram = ns.getServerMaxRam('pserv-0');
- if (ns.serverExists('pserv-24')) { var costa = ns.getPurchasedServerCost(ram * 2) }
- if (!ns.serverExists('pserv-24')) { var costa = ns.getPurchasedServerCost(ram) }
- var oba = { name: upgradea, cost: costa, test: 'Server Upgrade' };
- costlist.push(oba);
- }
- }
- function calcb() {
- var costb = ns.hacknet.getPurchaseNodeCost();
- var obb = { name: upgradeb, cost: costb, test: 'New Hacknet' };
- costlist.push(obb);
- }
- function calcc() {
- var nn = ns.hacknet.numNodes();
- var cclist = [];
- for (var o = 0; o < nn; ++o) {
- var rv = ns.hacknet.getNodeStats(o);
- var rc = { level: rv.level, cost: (ns.hacknet.getLevelUpgradeCost(o, 1)) };
- cclist.push(rc);
- }
- cclist.sort(function (a, b) { return a.cost - b.cost });
- var cs = cclist[0];
- clevel = cs.level;
- var costc = cs.cost;
- var obc = { name: upgradec, cost: costc, test: 'Hacknet Level' };
- costlist.push(obc);
- }
- function calcd() {
- var nn = ns.hacknet.numNodes();
- var dclist = [];
- for (var o = 0; o < nn; ++o) {
- var rv = ns.hacknet.getNodeStats(o);
- var rc = { ram: rv.ram, cost: (ns.hacknet.getRamUpgradeCost(o, 1)) };
- dclist.push(rc);
- }
- dclist.sort(function (a, b) { return a.cost - b.cost });
- var ds = dclist[0];
- dlevel = ds.ram;
- var costd = ds.cost;
- var obd = { name: upgraded, cost: costd, test: 'Hacknet Ram' };
- costlist.push(obd);
- }
- function calce() {
- var nn = ns.hacknet.numNodes();
- var eclist = [];
- for (var o = 0; o < nn; ++o) {
- var rv = ns.hacknet.getNodeStats(o);
- var rc = { cores: rv.cores, cost: (ns.hacknet.getCoreUpgradeCost(o, 1)) };
- eclist.push(rc);
- }
- eclist.sort(function (a, b) { return a.cost - b.cost });
- var es = eclist[0];
- elevel = es.cores;
- var coste = es.cost;
- var obe = { name: upgradee, cost: coste, test: 'Hacknet Core' };
- costlist.push(obe);
- }
- function listsort() {
- costlist.sort(function (a, b) { return a.cost - b.cost });
- }
- async function upgradea() {
- var money = ns.getServerMoneyAvailable("home");
- while ((ns.getPurchasedServerCost(ram) * 25) <= money) {
- if (ns.getPurchasedServerCost(ram * 2) <= money) {
- ram = ram * 2;
- }
- if (ns.getPurchasedServerCost(ram * 2) >= money) { break; }
- }
- var money = ns.getServerMoneyAvailable("home");
- for (var pservi = 0; pservi < 25; ++pservi) {
- var hostname = ("pserv-" + pservi).toString();
- ns.print(hostname);
- var money = ns.getServerMoneyAvailable("home");
- if (ns.serverExists(hostname)) { if (ns.getPurchasedServerMaxRam(hostname) >= ram) { ns.print('skip'); continue; } }
- while (ns.getPurchasedServerCost(ram) >= money) {
- await ns.sleep(10000);
- var money = ns.getServerMoneyAvailable("home");
- }
- var threadcount = Math.floor(ram / (ns.getScriptRam("hackq.script", "home")));
- var target = t(ns);
- var p = 0;
- if ((ram > 512) && (target.length >= 25)) {
- var p = pservi;
- }
- if (ns.serverExists(hostname)) {
- ns.killall(hostname);
- ns.deleteServer(hostname);
- }
- ns.purchaseServer(hostname, ram);
- await ns.scp("hackq.script", "home", hostname);
- ns.exec("hackq.script", hostname, threadcount, target[p]);
- }
- costlist.shift();
- calca();
- listsort();
- }
- async function upgradeb() {
- var nn = ns.hacknet.numNodes();
- var c = 1, d = 1, e = 1;
- var money = ns.getServerMoneyAvailable("home");
- ns.hacknet.purchaseNode();
- while (!(clevel > c) && (dlevel > d) && (elevel > e)) {
- var money = ns.getServerMoneyAvailable("home");
- while ((money <= ns.hacknet.getLevelUpgradeCost(nn, 1)) && (money <= ns.hacknet.getRamUpgradeCost(nn, 1)) && (money <= ns.hacknet.getCoreUpgradeCost(nn, 1))) {
- await ns.sleep(10000);
- var money = ns.getServerMoneyAvailable("home");
- }
- if (money >= ns.hacknet.getLevelUpgradeCost(nn, 1)) {
- ns.hacknet.upgradeLevel(nn, 1);
- ++c;
- }
- var money = ns.getServerMoneyAvailable("home");
- if (money >= ns.hacknet.getRamUpgradeCost(nn, 1)) {
- ns.hacknet.upgradeRam(nn, 1);
- d = d * 2;
- }
- var money = ns.getServerMoneyAvailable("home");
- if (money >= ns.hacknet.getCoreUpgradeCost(nn, 1)) {
- ns.hacknet.upgradeCore(nn, 1);
- ++e;
- }
- await ns.sleep(10);
- }
- costlist.shift();
- calcb();
- listsort();
- }
- async function upgradec() {
- var nn = ns.hacknet.numNodes();
- for (var z = 0; z < nn; ++z) {
- var rv = ns.hacknet.getNodeStats(z);
- if (rv.level > clevel) { continue; }
- var money = ns.getServerMoneyAvailable("home");
- while (money < ns.hacknet.getLevelUpgradeCost(z, 1)) {
- await ns.sleep(10000);
- var money = ns.getServerMoneyAvailable("home");
- }
- ns.hacknet.upgradeLevel(z, 1);
- }
- costlist.shift();
- calcc();
- listsort();
- }
- async function upgraded() {
- var nn = ns.hacknet.numNodes();
- for (var z = 0; z < nn; ++z) {
- var rv = ns.hacknet.getNodeStats(z);
- if (rv.ram > dlevel) { continue; }
- var money = ns.getServerMoneyAvailable("home");
- while (money < ns.hacknet.getRamUpgradeCost(z, 1)) {
- await ns.sleep(10000);
- var money = ns.getServerMoneyAvailable("home");
- }
- ns.hacknet.upgradeRam(z, 1);
- }
- costlist.shift();
- calcd();
- listsort();
- }
- async function upgradee() {
- var nn = ns.hacknet.numNodes();
- for (var z = 0; z < nn; ++z) {
- var rv = ns.hacknet.getNodeStats(z);
- if (rv.cores > elevel) { continue; }
- var money = ns.getServerMoneyAvailable("home");
- while (money < ns.hacknet.getCoreUpgradeCost(z, 1)) {
- await ns.sleep(10000);
- var money = ns.getServerMoneyAvailable("home");
- }
- ns.hacknet.upgradeCore(z, 1);
- }
- costlist.shift();
- calce();
- listsort();
- }
- calca();
- calcb();
- calcc();
- calcd();
- calce();
- listsort();
- while ((nn < ns.hacknet.maxNumNodes()) && (ram < ns.getPurchasedServerMaxRam())) {
- var lob = costlist[0];
- var t1 = costlist[1];
- var t2 = costlist[2];
- var t3 = costlist[3];
- var t4 = costlist[4];
- ns.print('--------------------------------------------------');
- ns.print(lob.test, " ", ns.nFormat(lob.cost, '$ 0.00a'), " | ", t1.test, " ", ns.nFormat(t1.cost, '$ 0.00a'), " | ", t2.test, " ", ns.nFormat(t2.cost, '$ 0.00a'), " | ", t3.test, " ", ns.nFormat(t3.cost, '$ 0.00a'), " | ", t4.test, " ", ns.nFormat(t4.cost, '$ 0.00a'));
- ns.print('--------------------------------------------------');
- await lob.name();
- await ns.sleep(10000);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement