There were two large holes in the existing offline server handling: 1. It didn't include IPs, so scripts that used IPs instead of hostnames would get exceptions thrown for "server not found." 2. Coverage was very low for non-Darknet APIs. Maybe most of them don't need to be covered, but many obvious ones like "ps", "killall" and "hasRootAccess" were missing. IMO the only reliable answer is one that enforces *all* are covered via the type system. To accomplish the second part, helpers.getServer() was changed to return null when a server is offline. This intentionally breaks a lot of its utility, which was to return a server unconditionally. To compensate, its utility was increased - it now also does unknown argument processing, allowing it to subsume a common line that all callers were repeating. Some callers switched to ctx.workerScript.getServer(), because they didn't actually need to be using helpers.getServer(). Similarly, a few callsites switched to GetServerOrThrow(), for the cases where it should be guaranteed that the server is valid. The rest are returning a default/failure response when the server is offline. (Except for contracts, which threw on failure already anyway.)
1.4 KiB
NS.nuke() method
Runs NUKE.exe on a server.
Signature:
nuke(host?: string): boolean;
Parameters
|
Parameter |
Type |
Description |
|---|---|---|
|
host |
string |
(Optional) Hostname/IP of the target server. Optional. Defaults to current server if not provided. |
Returns:
boolean
True if the player runs the program successfully, and false otherwise.
Remarks
RAM cost: 0.05 GB
Running NUKE.exe on a target server gives you root access which means you can execute scripts on said server. NUKE.exe must exist on your home computer.
Each server has a different number of required open ports. If that number is greater than 0, you have to open its ports before nuking it. You can check the requirement with getServerNumPortsRequired or getServer().numOpenPortsRequired.
Note that the server's required hacking level is not a requirement of nuking. You can nuke a server as long as you open enough ports, regardless of your hacking level.
Example
ns.nuke("foodnstuff");