initial commit
This commit is contained in:
parent
9c24345bdd
commit
cf68ee6ba6
10399
NetscriptDefinitions.d.ts
vendored
Normal file
10399
NetscriptDefinitions.d.ts
vendored
Normal file
File diff suppressed because it is too large
Load diff
27
src/super.ts
Normal file
27
src/super.ts
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
import { NS } from '@ns';
|
||||||
|
|
||||||
|
export const main = async (ns: NS) => {
|
||||||
|
const target = ns.args[0].toString();
|
||||||
|
|
||||||
|
ns.tprint('Target selected: ' + target);
|
||||||
|
|
||||||
|
const maxMoneyThresh = ns.getServerMaxMoney(target);
|
||||||
|
const minSecurityThresh = ns.getServerMinSecurityLevel(target);
|
||||||
|
|
||||||
|
// get root access
|
||||||
|
ns.nuke(target);
|
||||||
|
|
||||||
|
// main loop that continously hacks/grows/weakens the target server
|
||||||
|
while (true) {
|
||||||
|
if (ns.getServerSecurityLevel(target) > minSecurityThresh) {
|
||||||
|
// If the server's security level is above our threshold, weaken it
|
||||||
|
await ns.weaken(target);
|
||||||
|
} else if (ns.getServerMoneyAvailable(target) < maxMoneyThresh) {
|
||||||
|
// If the server's money is less than our threshold, grow it
|
||||||
|
await ns.grow(target);
|
||||||
|
} else {
|
||||||
|
// Otherwise, hack it
|
||||||
|
await ns.hack(target);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
import { NS } from '@ns';
|
|
||||||
|
|
||||||
export async function main(ns: NS) {
|
|
||||||
ns.tprint('Hello World!');
|
|
||||||
}
|
|
||||||
7
src/test.ts
Normal file
7
src/test.ts
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
import { NS } from '@ns';
|
||||||
|
import { scan } from './utils/scan';
|
||||||
|
|
||||||
|
export const main = (ns: NS) => {
|
||||||
|
const hosts = scan(ns, undefined, 50);
|
||||||
|
ns.tprint(hosts);
|
||||||
|
};
|
||||||
33
src/utils/scan.ts
Normal file
33
src/utils/scan.ts
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
import { NS } from '@ns';
|
||||||
|
|
||||||
|
export const scan = (
|
||||||
|
ns: NS,
|
||||||
|
rootAccess?: boolean,
|
||||||
|
requiredHackingSkill?: number,
|
||||||
|
portsForNuke?: number,
|
||||||
|
ram?: number,
|
||||||
|
): string[] => {
|
||||||
|
// initialize a new set to store a list of all hosts
|
||||||
|
const allHosts = new Set<string>(['home']);
|
||||||
|
|
||||||
|
// for each host in the set, scan it and add all of its neighbors to the set
|
||||||
|
allHosts.forEach((h) => {
|
||||||
|
ns.scan(h).forEach((n) => allHosts.add(n));
|
||||||
|
});
|
||||||
|
|
||||||
|
// remove home from the set
|
||||||
|
allHosts.delete('home');
|
||||||
|
|
||||||
|
// now we start the filtering into another new list
|
||||||
|
const filteredHosts = Array.from(allHosts).filter((host: string) => {
|
||||||
|
if (rootAccess && ns.hasRootAccess(host) !== rootAccess) return false;
|
||||||
|
if (requiredHackingSkill && ns.getServerRequiredHackingLevel(host) > requiredHackingSkill) return false;
|
||||||
|
if (portsForNuke && ns.getServerNumPortsRequired(host) > portsForNuke) return false;
|
||||||
|
if (ram && ns.getServerMaxRam(host) < ram) return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
// convert the set to an array and return it
|
||||||
|
return Array.from(filteredHosts);
|
||||||
|
};
|
||||||
Loading…
Reference in a new issue