From ec76c2eccadc40992684cdd23dd18575d0fbc815 Mon Sep 17 00:00:00 2001 From: Olivier Gagnon Date: Fri, 5 Nov 2021 15:43:38 -0400 Subject: [PATCH] update ns2 doc --- doc/source/netscript/autocomplete.png | Bin 0 -> 61532 bytes doc/source/netscript/netscriptjs.rst | 131 +++++++++--------- .../netscript/netscriptscriptarguments.rst | 3 +- 3 files changed, 66 insertions(+), 68 deletions(-) create mode 100644 doc/source/netscript/autocomplete.png diff --git a/doc/source/netscript/autocomplete.png b/doc/source/netscript/autocomplete.png new file mode 100644 index 0000000000000000000000000000000000000000..176a325c24e16c553d89d638addaf4927e1975f4 GIT binary patch literal 61532 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
}~!E?t84Ioc#vcUStC#ZtHV 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 +ns2 was developed primarily by `Github user jaguilar `_ -On top of having almost all of the features and capabilities of JavaScript, NetscriptJS is also -significantly faster than Netscript 1.0. +On top of having almost all of the features and capabilities of JavaScript, ns2 is also +significantly faster than ns1. -This documentation will not go over any of the additional features of NetscriptJS, since +This documentation will not go over any of the additional features of ns2, since there is plenty of documentation on Javascript available on the web. Browser compatibility --------------------- -As of the time of writing this, a few browsers do not support `dynamic import `_ functionality and therefore cannot run NetscriptJS scripts. These browsers will thus only be capable of using Netscript 1.0. +As of the time of writing this, a few browsers do not support `dynamic import `_ functionality and therefore cannot run ns2 scripts. These browsers will thus only be capable of using ns1. -How to use NetscriptJS +How to use ns2 ---------------------- -Working with NetscriptJS scripts is the same as Netscript 1.0 scripts. The only difference -is that NetscriptJS scripts use the ".ns" or ".js" extension rather than ".script". E.g.:: +Working with ns2 scripts is the same as ns1 scripts. The only difference +is that ns2 scripts use the ".ns" or ".js" extension rather than ".script". E.g.:: $ nano foo.ns $ run foo.ns -t 100 arg1 arg2 arg3 exec("foo.ns", "purchasedServer1", "100", "randomArg"); -The caveat when using NetscriptJS to write scripts is that your code must be +The caveat when using ns2 to write scripts is that your code must be asynchronous. Furthermore, instead of using the global scope and executing your code -sequentially, NetscriptJS uses a :code:`main()` function as an entry point. +sequentially, ns2 uses a :code:`main()` function as an entry point. -Furthermore, the "Netscript environment" must be passed into a NetscriptJS script through +Furthermore, the "Netscript environment" must be passed into a ns2 script through the main function. This environment includes all of the pre-defined Netscript functions (:code:`hack()`, :code:`exec`, etc.) as well as the arguments you pass to the script. @@ -65,7 +65,7 @@ Here is a summary of all rules you need to follow when writing Netscript JS code * **Do not write any infinite loops without using a** :code:`sleep` **or one of the timed Netscript functions like** :code:`hack`. Doing so will freeze your game. -* Any global variable declared in a NetscriptJS script is shared between all instances of that +* Any global variable declared in a ns2 script is shared between all instances of that script. For example, assume you write a script *foo.ns* and declared a global variable like so:: //foo.ns @@ -91,69 +91,68 @@ Here is a summary of all rules you need to follow when writing Netscript JS code the script will repeatedly print the value 5). These global variables can be thought of as `C++ static class members `_, - where a NetscriptJS script is a class and a global variable is a static member within that class. + where a ns2 script is a class and a global variable is a static member within that class. -Examples --------- +Example +------- -**Script Scheduler (scriptScheduler.ns)** +early-hack-template.script -This script shows some of the new functionality that is available in NetscriptJS, -including objects and object constructors, changing an object's prototype, and -importing other NetscriptJS scripts:: +.. code-block:: javascript - import {tprintColored} from "tprintColored.ns"; //Importing from other NetscriptJS scripts works! - - function ScriptJob(params) { - if (params.fn == null) { - throw new Error("No Filename (fn) passed into ScriptJob ctor"); + var target = args[0]; + var moneyThresh = getServerMaxMoney(target) * 0.75; + var securityThresh = getServerMinSecurityLevel(target) + 5; + if (fileExists("BruteSSH.exe", "home")) { + brutessh(target); + } + nuke(target); + while(true) { + if (getServerSecurityLevel(target) > securityThresh) { + weaken(target); + } else if (getServerMoneyAvailable(target) < moneyThresh) { + grow(target); + } else { + hack(target); } - - this.fn = params.fn; - this.threads = params.threads ? params.threads : 1; - this.args = params.args ? params.args : []; } - ScriptJob.prototype.run = function(ns) { - let runArgs = [this.fn, this.threads].concat(this.args); - if (!ns.run.apply(this, runArgs)) { - throw new Error("Unable to run " + this.fn + " on " +ns.getHostname()); - } - tprintColored("Running " + this.fn + " on " + ns.getHostname(), "blue"); - } +early-hack-template.ns - ScriptJob.prototype.exec = function(ns, target) { - ns.scp(this.fn, target); - - let execArgs = [this.fn, target, this.threads].concat(this.args); - if (!ns.exec.apply(this, execArgs)) { - throw new Error("Unable to execute " + this.fn + " on " + target); - } - tprintColored("Executing " + this.fn + " on " + target, "blue"); - } +.. code-block:: javascript export async function main(ns) { - tprintColored("Starting scriptScheduler.ns", "red"); - try { - let job = new ScriptJob({ - fn: "test.js", - threads: 1, - args: ["foodnstuff"] - }); - job.run(ns); - job.exec(ns, "foodnstuff"); - } catch (e) { - ns.tprint("Exception thrown in scriptScheduler.ns: " + e); + var target = ns.args[0]; + var moneyThresh = ns.getServerMaxMoney(target) * 0.75; + var securityThresh = ns.getServerMinSecurityLevel(target) + 5; + if (ns.fileExists("BruteSSH.exe", "home")) { + ns.brutessh(target); + } + ns.nuke(target); + while(true) { + if (ns.getServerSecurityLevel(target) > securityThresh) { + await ns.weaken(target); + } else if (ns.getServerMoneyAvailable(target) < moneyThresh) { + await ns.grow(target); + } else { + await ns.hack(target); + } } } -Final Note ----------- -NetscriptJS opens up a lot of possibilities when scripting. I look forward to seeing -the scripts that people come up with. Just remember that the power and capabilities of -NetscriptJS come with risks. Please backup your save if you're going to experiment with -NetscriptJS and report any serious exploits. +What's with the weird comment +----------------------------- -With great power comes great responsibility +You may have noticed that every new ns2 file will contains the following comment. -Happy hacking +.. code-block:: javascript + + /** + * @param {NS} ns + **/ + +This command is used to help the text editor autocomplete functions in the Netscript API. You can enabling it by pressing ctrl+space after `ns.` + +.. image:: autocomplete.png + +The comment can be safely removed but it is recommended to keep it as it will help you. \ No newline at end of file diff --git a/doc/source/netscript/netscriptscriptarguments.rst b/doc/source/netscript/netscriptscriptarguments.rst index cd442f399..024fd648e 100644 --- a/doc/source/netscript/netscriptscriptarguments.rst +++ b/doc/source/netscript/netscriptscriptarguments.rst @@ -22,5 +22,4 @@ into a script using:: args.length -**WARNING: Do not try to modify the args array. This will break the game. -I will do my best to prevent players from doing this.** +**WARNING: Do not try to modify the args array. This will break the game.**