NTSL Script: различия между версиями
Kinrany (обсуждение | вклад) |
Alexix (обсуждение | вклад) |
||
Строка 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
В разработке… |
Данная статья помечена как неоконченная. Это означает, что статья находится на доработке, поэтому является неверной или неактуальной. Вы можете помочь проекту Onyx и сообществу SS13 в целом — зайдите на наш Портал сообщества.
|
Внимание
Скриптовый язык Нанотразен был удалён из-за возможности краша. Информация о ошибке.
Расшифровка
NanoTrasen Scripting Language (Скриптовый Язык НаноТрейзен)
Как начать пользоваться NTSL
- Придите в отсек контроля за телекомуникациями станции(Telecommunications Control Room).
- Откройте консоль контроля за трафиком телекомуникаций (Telecommunications Traffic Control Console).
- Авторизируйтесь для получения доступа, нажав Insert ID с картой в руках.
- [Scan] для получения списка серверов.
- Нажмите на сервер с интересующим вас радиоканалом.
- [Edit Code], чтобы увидеть код сервера.
- Наберите свой код в появившееся окно.
- Save, Compile и Execute
- Закройте окно с кодом.
- Смените режим выполнения сигнала (Signal Execution) на ALWAYS.
- Поздравляю, вы прекрасны!
- Повторите шаги с 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 |