This is an old revision of the document!
Table of Contents
The Scripting Language
Limitations and features
The Nettalk-language script uses the same syntax as other Visual Basic dialects. However there are some limitations to note:
- You can not have multiple commands with a colon in a separate line.
- There is on the
Do
/Loop
construct for iterating around a piece of script (ie theFor
/Next
statements are not available) - There is no static declaration of variables.
- As with VB Script, there is only one universal variable type (known as a variant). After the declaring a variable using
Dim
it will be an empty string. - There are no line numbers.
- Arrays are only one-dimensional, they are not declared and are valid throughout the script part (a section marked by
#NewScriptBegin
). Instead of a numeric index a string key can also be used.
Examples
Procedures and variables
#NewScriptBegin Script1 'Variable Testvar1 available in Script1 Dim Testvar1 'Variable Testvar2 available in all scripts Public Testvar2 Sub StartTest() Testvar1="Test-Text" Testvar2="More Test-Text" MsgBox "Test2 in Script1" 'Call Test1 in Script1 Test1 'Call Test1 in Script2 Script2.Test1 End Sub Sub Test1() MsgBox "Test1 in Script1 (" + Testvar1 + ")" End Sub #NewScriptBegin Script2 Sub Test1() MsgBox "Test1 in Script2 (" + Testvar2 + ")" End Sub
Functions and variables
#NewScriptBegin Script1 Sub StartTest() MsgBox "Test2 in Script1" 'Call Test1 in Script1 Test1 "Burt", "Fred" 'Call Test1 in Script2 TempText = Script2.Test1("Test...") MsgBox TempText End Sub Sub Test1(Text1, Text2) MsgBox "Test1 in Script1 (" + Text1+ " and " + Text2 + ")" End Sub #NewScriptBegin Script2 Function Test1(Text) Test1 = "Text from Test1 in Script2 (" + UCase(Text) + ")" End Sub
Nettalk commands calling script
Subroutines and functions within your script (or built into the scripting language itself) may be called via teh Nettalk command interface (the same place where you type your chat). This may be done using any of the commands /call
, /calc
, or simply ?
. The following three calls therefore all have the same effect:
/call Test1 Burt Fred /calc Test1("Burt", "Fred") ?Test1("Burt", "Fred")
Wie man sieht kann das ”?” genau wie /calc
verwendet werden. Besonderheiten von ”?” sind die Modifikationen ”?#” und ”?@”. Während das einfache ”?” den Rückgabewert einer Funktion nur dem Benutzer anzeigt, versendet ”?#” den Rückgabewert und ”?@” versendet den Rückgabewert mit dem Funktionsaufruf.
Beispiele:
?@Test1("Hanz", Str(32*1024)) ?5+8 ?#5+2^8 /calc 7*7+5
Da dem Befehl /call
die Argumente ohne Anführungszeichen angegeben werden, kann maximal ein String mit Leerzeichen übergeben werden in dem dieser durch ein ”:” markiert wird. Zudem zeigt /call
keine Rückgabewerte an.
Beispiel für einen String mit Leerzeichen:
/call Test3 Hanz Egon Marta :Dies ist ein Texttext mit Leerzeichen
Original German content : Die Scriptsprache