Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /** @param {NS} ns */
- export async function main(ns) {
- var ram = ns.args[0];
- var canBuy = true;
- var maxSize = ns.getPurchasedServerMaxRam();
- ns.tprint("Next Server Cost - " + + ns.getPurchasedServerCost(ram));
- while (canBuy) {
- let servers = ns.getPurchasedServers();
- let cost = ns.getPurchasedServerCost(ram)
- // Check if we have enough money to purchase a server
- if (ns.getServerMoneyAvailable("home") > cost) {
- //check if we are at max
- if (servers.length == ns.getPurchasedServerLimit()) {
- //find the smallest memory server we have
- //ns.tprint(JSON.stringify(servers));
- ns.tprint("At max servers, attempting to sell smallest server.");
- let smallest = [servers[0], ns.getServerMaxRam(servers[0])];
- for (let server of servers) {
- //ns.tprint("Checking server - " + server);
- let r = ns.getServerMaxRam(server);
- if (r < smallest[1]) {
- smallest = [server, r];
- }
- }
- //check if smallest server has been maxed
- if (smallest[1] == maxSize) {
- //Notify and end script. We are done here.
- ns.tprint("We have reached max servers at max size!!!!!");
- canBuy = false;
- } else {
- //end all running scripts on the server
- ns.killall(smallest[0]);
- //delete it
- if (ns.deleteServer(smallest[0])) {
- ns.tprint(smallest[0] + " removed to make room for new server.");
- } else {
- ns.tprint("Could not delete server - " + smallest[0]);
- }
- }
- }
- if (ns.getPurchasedServers().length < ns.getPurchasedServerLimit()) {
- var hostname = ns.purchaseServer("MyServer-" + ram, ram);
- ram = ram * 2;
- if (ram > maxSize) ram = maxSize;
- ns.tprint(hostname + " purchased for - " + cost + ". Next server costs - " + ns.getPurchasedServerCost(ram));
- }
- }
- await ns.sleep(5000);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment