DSO User Manual

From Dark Signs Online
Jump to navigationJump to search

Welcome to the Dark Signs Online officially Unofficial Users Manual for Beta Stages of DSO.

Current Edition is for 0.80.1

Composed by Toni.

First of all in case you missed this on the front page:

Dark Signs Online is the new improved, online multi-player version of Dark Signs, allowing people to own their own domains, share missions instantly, and hack other users. Dark Signs Online includes major enhancements to the script language, which to many newcomers can be a steeper learning curve.

So, with that in mind, I decided to write this manual for those that may need more information than could be found in the wiki.

Let's get started!

If you have yet to register a username, you should do so here.

Please read the terms of service carefully. We would hate to lose players simply because they didn't realize they were violating the rules of the game.

Suggestion:

Use a notepad, whether it is on the computer, or a real paper tablet. This is a useful tool to keep track of usernames and passwords, which name owns what domains and so on. For use with creating or modifying scripts, download Notepad++ as well as the user defined Ds Language.

Now if you have yet to do so, download and install the latest release here DSO 0.80.1

DSO doesn't need to be installed, really. Simply create a shortcut of DSO.exe onto your desktop from the DSO folder.

For the sake of this manual, as well as what you might find in the forums, <info> will be used in place of what you need to fill in. Omit the <> as well.

Open up dso.exe

You will notice when DSO first boots up, it automatically begins to log you in, but you have yet to set your login details.

So type

 logout

Then type

 username <your new user name>

Then

 password <password>

This sets your username and password, which you shouldn't need to change unless if you want to login under a different name

Ready to go online?

Type

 login

Look at the comm window. This can be found at the TOP of the console. Notice it displays your username, the version of DSO, and your stats.

The Comm window plays an important role at times during the game, so don't forget that it is there.


Let's take a quick overview of the tabs that are in the bottom right hand corner

1 2 3 4 are separate consoles.

You cannot login two or more usernames at once. It's not gonna happen. I am told you can run more
than one script or set of commands using each console for each script/command, the author has yet
 to have a decent connection to test this theory.

^ Hides the Comm window (listkey is also F11)

 For those that want the feeling of a real console I suppose, but don't forget that the comm is
 helpful most of the time. (In other words, use this only when unsuspecting friends are around that 
 don't know it is a game, <wink>)

"Smiley" Is the Chat window

I am not sure what they do here, though I assume it's for passing messages to other users who
are paying attention. <author shrugs shoulders>

db is the Database

This is where users can share scripts, or code bits for quick and easy access to other members.
This is a great place to find scripts to reverse engineer so you can get a better idea of
how Dscript works.

DSO Chat

If you already know how to set and register a name, feel free to skip this part.

How to create a nick..

Commands:

Now that we have covered the basics of the console I refer you to the Commands_List and Functions_List

Typing

 help

Into the console also gives you more information on commands.

I advise all newcomers to refer to these often, and learn them well.

Commands that if used in a script they will only affect you (not another user) on your console,comm or hard drive:

 CD
 CAT
 Closeport
 DATE
 DEL
 DIR
 Display
 Getip
 Getdomain
 Listcolors
 Listkeys
 Music
 Now
 Ping
 Pingport
 RD
 Register
 Rename
 Restart
 Run
 Stats
 Time
 Unregister
 Upload

And of course

 Username	
 Password
 Login
 Logout

These commands the author is unsure (has yet to test) if they fit into the above category, or the next category:

 Copy
 Lookup
 Move
 Ydiv

Commands that can be used in scripts, to create files, or folders into the DEFAULT\User folder of your, or other users; hard drive.

 Append
 Lineup
 MD
 Write

Commands that can be used in a script to be displayed onto the console or comm, without affecting the users hard drive:

 Clear
 Connect
 Draw
 Lineup	
 Pause
 Say
 Sayall
 Saycomm
Now, I want to help you understand some of these in more context.

APPEND is easier than it looks, but let's dismantle the usage for a second.

myfile.txt

This is the file that the information is being written to, this can also be a script (.ds) but it is not limited to what KIND of file you want to make(anything after the period becomes the "extension" and can be read by DSO)

test1, test2, test3, and so on; is the information that is being written.

Using start and end

 Append myfile.txt <start Or end> test1

Will write

 test1

either at the top (start) of the file, or the bottom (end) of myfile.txt

Write does the same as Append, however the only difference between the two is this:

If the <file> exists, Append only adds the <info>.

Write will erase the existing <file> and create a new <file>.

Take care and try not to confuse the two.

Closeport This closes the port and erases the script in that port completely. This is for Domain owner and Subowner use only.

When you load a script into a port (using upload <domain> <port> <file>) you should mark down the domain,script and port. Currently, even if you use remotedir, scripts loaded into a port are not shown. This feature has been addressed and (hopefully) will be in the next release of DSO. Provided there are no conflicts the developers may come across.

Using download <domain> <port> <script> you can retrieve it if some how the script on your hard drive becomes currupted.

When you use remoteupload <domain> <file>; the <file> can be interacted with a script using server commands.

However, at the current moment, there is no way to run a script (.ds) if it has been remoteupload-ed.


Functions:

Functions are used in scripts and are pretty advanced for new users. So if you have any questions, use the forum and others with a vast majority of experience will gladly be able to help you.

Note: Be patient for a response, players are from all over the world here, so you might not get a response immediately.

Symbols that are used with functions in scripting.

 < Lesser than
    > Greater than
      + Adds to
       - Subtracts from
         = Equals to
      ! NOT Equal to
      ~ also NOT equal to
    @ At tag ("GOTO Menu" would send the script to "@Menu")
 $ Wildcard (used for Variables)

Variables:

 $<anything you want> can be a variable (it has been stressed not to use $<numbers> 
 though $<letter><number>
 such as $a1 is alright)

Global_variables cannot be changed or used for any other purpose than the intended use.

 // <notes> 

This is used in a script for authors to make <notes> or comments and is not used or displayed by the script. It is useful, especially when making a complex script, for others that may read the source.

Basic matrix of a script:

   IF <action>
 // If the <action, string or input> occurs then.
   GOTO <tag>
// If the tag is not found, you will receive a "GOTO TAG" error.
   ELSE IF <opposite or unwanted action>
 // Multiple Else IFs may be used. Also, if you simply want only ONE IF; where any other response
 //than the one you state is invalid,use Else.
   Goto <tag>
 // Needed when additional Else IF's, or an Else is used.
   END IF <closes the IFs>
 // You must use this in order to close the IF statements, or else the script will pass into the
 //next statement; causing the IF to fail.
   EXIT
 // Disconnects the user from the domain the script is running.

Functions:

Note: These can ONLY be used in scripts.

Server Functions:

(These can ONLY be used in a script, and on the same domain as the script is running.) Server Append This works as Append, it will append to the server that script is running on. Server Append <file> <info> Depending on the <files> privileges; this might not be availible to visitors.

 Privileges:
     Public (visitor can append)
     Private (visitor cannot append)

Sever Write

 Server Write <file> <info>

This works just like Write on a server, with the same <file> rules of privileges as Server Append.

ServerFileDelete

 ServerFileDownload(<domain>, <file>)

No, that is not a typo. All three words Server File Download, combined for one function.

This downloads to the console, NOT to an actual hard drive.

If the <file> has not been remotupload-ed to the <domain> the script with ServerFileDownload is being run, it will fail.

Note: The parameter does not use double quotes

That is the end of Server Functions.

INSTR

This stands for In String.

Let's break this down to an easier way of understanding it.


Say there is a list of cookie recipes, called yummies.txt

       Yummies.txt
      Chocolate-chip
         Oatmeal
       Vanilla-Wafer
          Oreo
      Peanut-Butter
       Sugar-Cookie

Now then, if you wanted to search the list for a certain cookie like Sugar-Cookie you would use the syntax like so:

 $var1 = Sugar-Cookie
   $var2 = yummies.txt
     IF INSTR("$var2", "$var1") > 0 Then
    SAY Sugar-Cookie Recipe found!
   Else
 SAY No Recipes were found :(

Now, the return is either (0) which is not present, or the start of were the variable is found on the list, in this case (62)

Keep this in mind when you are using math functions (<>!=) when you want to search.

Because Sugar-Cookie was indeed found (62) in yummies.txt, it returned that it was greater than (>) 0 and the console would display

 Sugar-Cookie Recipe found!

And if you used:

 $var = Gingersnap

It would return that it was 0 and the console would display:

 No Recipes were found :(

But,bear in mind, if you used this syntax:

 $var = Sugar-Cookies

You would still receive the response:

 Sugar-Cookie Recipe found!

LEFT(<String>,<length to go before it stops>)

RIGHT(<String>,<length to go before it stops>)

Currently, Right has a small bug where it chops off the last char of the string.

If we were to use

 $var = LEFT(Poppa don't preach,20)
    $var1 = RIGHT(Poppa don't preach,20)
       SAY $var
         SAY $var1

You would receive

 Poppa don't preach
 Poppa don't preac

If we were to use

 $var = LEFT(Poppa don't preach,5)
   $var1 = RIGHT(Poppa don't preach,5)
     SAY $var
       SAY $var1

You would receive

 Poppa (because it is 5 characters from the left)
 preac (because it is five characters from the right, with the bug subtracting the last character in
 the line. If the bug did not exist, "reach" would be the response)

REVERSE and REPLACE at the moment are a bit buggy. avoid using these until fixes have been declared.

CHR

 chr(<number of desired character>)

This takes the decimal value (<number of desired character>) and displays that character. See here for the decimal value of alphabet characters.

Or, you can use ASC(letter or symbol) in the console.

Typing

 SAY ASC(A)

will display

 65

So if we used

 $var = chr(103)chr(105)chr(109)chr(109)chr(101)
   Say $var

We would receive

 gimme

If we used

 $var = chr(71)chr(105)chr(109)chr(109)chr(101)
   Say $var

We would receive

 Gimme

Note: If you place a space or spaces between each chr() it will return spaced.

 Example:
  //                       (note the space below)
 $var = chr(71)chr(105)chr(118)chr(101) chr(109)chr(101)
    Say $var

We would receive

 Give me

This is Beta, so of course there may be bugs other than those stated here or on the forums.

If you receive an error displayed onto the console, check that you are sure you are using the syntax properly. If you cannot seem to correct your script, post a copy of your it into the forums here and other users will help you with debugging your script.

If you know for sure you are using the correct syntax, confirm it with another user (usually one with more experience) and post the bug here

The forums contain a wealth of information, although some may be outdated (don't overlook hereeither so read and re-read posts to make sure it isn't. (In other words, some threads contain information that was relevant to older stages of beta, and may not apply to the current version)

Don't be afraid of bumping an old thread (asking a question, making a comment, or simply answering an old comment or thread) it is not taboo here... the forums are there for you to use.

Note: your DSO username and password does not work in the forums, you will need to register there as well if you want to respond to posts, or create a new thread.

  Thats it...for now.
         I hope this helps anyone that reads this manual. 
            Please, feel free to post in the discussion any comments (such as suggestions for 
 improvements, simply to say thanks, this manual is useless or even that the author has no clue 
 of what is going on!)