NTSL Script

Материал из Chaotic Onyx
Версия от 18:59, 9 апреля 2015; EkuDza (обсуждение | вклад) (Добавил данных для перевода)
Перейти к навигацииПерейти к поиску

В разработке…


Jobeng.png
Данная статья помечена как неоконченная. Это означает, что статья находится на доработке, поэтому является неверной или неактуальной.

Вы можете помочь проекту Onyxyeye@256x256.png Onyx и сообществу Animus-logo.png SS13 в целом — зайдите на наш Bus Mainframes.gif Портал сообщества.
Также вы можете прочитать эту статью на ["http://www.ss13.eu/wiki/index.php/NTSL" зарубежном вики-проекте].


Расшифровка

NanoTrasen Scripting Language

Как начать пользоваться NTSL

  1. Придите в отсек контроля за телекомуникациями станции(Telecommunications Control Room).
  2. Откройте консоль контроля за трафиком телекомуникаций (Telecommunications Traffic Control Console).
  3. Авторизируйтесь для получения доступа нажав Insert ID с картой в руках.
  4. [Scan] для получения списка серверов.
  5. Нажмите на сервер с интересующим вас радиоканалом.
  6. [Edit Code] чтобы увидеть код сервера.
  7. Наберите свой код в появившееся окно.
  8. Save, Compile и Execute
  9. Закройте окно с кодом
  10. Смените режим выполнения сигнала (Signal Execution) на ALWAYS
  11. Поздравляю, вы прекрасны!
    • Повторите шаги с 5 по 10 для каждого канала, если желаете.

Гайд по синтаксису

NT Script follows a simple-to-use syntax designed for users of all levels of programming expertise. Whitespace is ignored, semicolon break points are required, and curly brackets are required.


Переменные

Переменные нужны для временного хранения данных для дальнейшего использования в коде. Для создания переменной используйте следующий синтаксис:

$myVariable = 5; //  "$" позволяет компилятору идентифицировать переменную.

Вы можете назначить переменной текстовое значение (строку).

$myVariable = "Hello world!";

Функции

Functions can be used and defined dynamically. There are different pre-defined functions for each NTSL implementation, however the basic ones will remain the same. Here is how you use a function:


$myVariable = getNumber();

В этом примере переменной "$myVariable" назначаем значение, которое вернула функция "getNumber()". Каждая функция возвращает значение, даже если возвращаемое значение не определено. Вот еще несколько примеров вызова функции:

broadcast($myVariable);
broadcast("Hello world!");
broadcast("Griffing assistants in T-minus " + $myVariable + " seconds.");

Также вы можете определить свою функцию используя def:

def getNumber() {
    return 5; // Функция getNumber() всегда будет возвращать число 5.
}

Code Blocks

Blocks of code are called when a specific piece of code signals that it is a representation of a block of code. Variables defined in one code block cannot be applied or changed in other nonrelated code blocks; this is known as scope. For example:

$myGlobalVariable = getNumber();

while($myGlobalVariable != 0) {
    
   $myLocalVariable = 0;
   $myGlobalVariable = $myLocalVariable;
}

$myLocalVariable = 50; // this is invalid; myLocalVariable does not exist in this scope

Once the interpreter reads the closing bracket, it destroys all variable definitions within the scope, therefore you cannot use any of the variables that existed in that particular block of code.


Conditionals

The while() loop in the previous example is considered a conditional because it only continues executing when the condition between the parentheses is true. The != is known as a relational operator which returns true to the interpreter if myGlobalVariable does not equal 0. It can be read as "while myGlobalVariable does not equal 0, execute the following block of code".

Список операторов сравнения:

  • == : Равно
  • != : Не равно
  • < : Меньше чем
  • > : Больше чем
  • <= : Меньше чем или равно
  • >= : Больше чем или равно


Relational operators can be used in if(), and elseif(), statements, which are used the following way:

if($myVariableNumber == 50) // if my number is 50
{
   // code block
}
elseif($myVariableNumber <= 30) // if not, is my number 30 or less?
{   
   // code block
}
else // if not either 50 OR 30 or more, do this instead
{
   // code block
}

Синтаксические особенности

Операторные скобки - "{" и "}"
Знак присваивания - "="
Отступы игнорируются, на конце каждой строки требуется ";"
Для объявления переменной не требуется никаких ключевых слов, ей может быть любое не зарезервированное ранее слово, поддерживается принцип области применения (т.е. принцип локальных переменных)

Пример кода:

myVariable = 12345;
if ( myVariable == 12345 ) 
{ 
    qwerty = 1; 
    qwerty = qwerty + 1;
} 
else { 
    myVariable = 1; 
}

Типы данных

Используются три типа: число, вектор и строка, приблизительно соответствующие типам double, vector и string в C++. А именно:

  • Число хранится в виде a*b^n, но может быть использовано и как целое.
  • Вектор - массив с переменной длиной, в его ячейках могут храниться любые типы.
  • Строка - набор символов. Пустая строка используется в качестве null.

Тип переменной объявлять не нужно. По умолчанию любая переменная, которой не было присвоено значение, содержит пустую строку. Тип переменной не фиксирован, одной и той же переменной можно присваивать значения разных типов.

Операторы

Бинарные


Использование Использование
X == Y Вернёт TRUE если X = Y
X != Y Вернёт TRUE если X =/= Y
X > Y Вернёт TRUE если X больше Y
X < Y Вернёт TRUE если Х меньше Y
X >= Y Вернёт TRUE если X больше или равен Y
X <= Y Вернёт TRUE если X меньше или равен Y
X && Y Вернёт TRUE если X и Y равны TRUE
X || Y Вернёт TRUE если X, Y, или они оба равны TRUE
X + Y Вернёт сумму X и Y
X - Y Вернёт разность X и Y
X * Y Вернёт произведение X и Y
X / Y Вернёт частное X и Y
X^Y Вернёт X в степени Y
X%Y Вернёт остаток X / Y
Название Использование Возвращаемый результат
Битное И X & Y 101
Битное ИЛИ X | Y 111