NTSL Script: различия между версиями

Материал из Chaotic Onyx
Перейти к навигацииПерейти к поиску
Строка 1: Строка 1:
 
{{Заготовка|url=http://www.ss13.eu/wiki/index.php/NTSL}}
 
{{Заготовка|url=http://www.ss13.eu/wiki/index.php/NTSL}}
 +
== Внимание ==
 +
Скриптовый язык Нанотразен был удалён из-за возможности краша. [https://github.com/tgstation/-tg-station/issues/11647 Информация о ошибке.]
 +
 
== Расшифровка ==
 
== Расшифровка ==
 
NanoTrasen Scripting Language (Скриптовый Язык НаноТрейзен)
 
NanoTrasen Scripting Language (Скриптовый Язык НаноТрейзен)

Версия от 17:28, 4 ноября 2015

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


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

Вы можете помочь проекту Onyxyeye@256x256.png Onyx и сообществу Animus-logo.png SS13 в целом — зайдите на наш Bus Mainframes.gif Портал сообщества.
Также вы можете прочитать эту статью на зарубежном вики-проекте.


Внимание

Скриптовый язык Нанотразен был удалён из-за возможности краша. Информация о ошибке.

Расшифровка

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. Поздравляю, вы прекрасны!
  12. Повторите шаги с 5 по 10 для каждого канала, если желаете.

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

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


Переменные

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

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

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

$myVariable = "Hello world!";

Функции

Функции могут быть заданы динамично. Есть разные предопределённые функции для реализации цели на NTSL, но базовые функции остаются такими же. Вот пример, как Вы можете использовать функцию:


$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

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

$myGlobalVariable = getNumber();

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

$myLocalVariable = 50; // Это неверно; myLocalVariable не существует в этом блоке

Как только будет обработана закрывающая квадратная скобка, все переменные будут уничтожены. Следовательно, вы не сможете использовать какие - либо переменные вне того блока кода, где они указаны.

Операторы условия (тупая мразь)

Процедура while() будет обрабатываться снова и снова до тех пор, пока указанное в ней равенство / неравенство не будет верно. Оператор != обозначает "неверно".

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

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

Также могут быть использованы операторы if() (если), elseif() (также если) и else() (иначе). Пример:

if($myVariableNumber == 50) // Если число равно пятидесяти.
{
   // Блок кода
}
elseif($myVariableNumber <= 30) // Если число не равно пятидесяти, но меньше или равно тридцати.
{   
   // Блок кода
}
else // Если ни одно из условий не верно.
{
   // 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