NTSL Script: различия между версиями
м |
Menxis (обсуждение | вклад) (добавил Traffic Control Systems Implementation) |
||
| Строка 121: | Строка 121: | ||
Тип переменной объявлять не нужно. По умолчанию любая переменная, которой не было присвоено значение, содержит пустую строку. Тип переменной не фиксирован, одной и той же переменной можно присваивать значения разных типов. | Тип переменной объявлять не нужно. По умолчанию любая переменная, которой не было присвоено значение, содержит пустую строку. Тип переменной не фиксирован, одной и той же переменной можно присваивать значения разных типов. | ||
| + | |||
| + | == Traffic Control Systems Implementation == | ||
| + | |||
| + | Система телекоммуникаций напрямую связана с TCS scripting implementation. В ней присутствуют следующие функции и возможности. | ||
| + | |||
| + | |||
| + | === Модификация сигнала в реальном времени === | ||
| + | |||
| + | Если код настроен на автоматическое исполнение, сигналы сначала будут выполнять сохраненный на сервере код. Информация о сигналах хранится в следующих переменных: | ||
| + | |||
| + | $source // источник сигнала | ||
| + | $content // содержание сигнала | ||
| + | $freq // частота на которой передается сигнал | ||
| + | $pass // определяет будет ли транслирован сигнал | ||
| + | $job // профессия (только для радиосообщений) оратора | ||
| + | |||
| + | === Функции === | ||
| + | |||
| + | TCS также содержит следующие функции (параметрами можно пренебречь; тогда они будут назначены автоматически): | ||
| + | |||
| + | |||
| + | ==== broadcast() ==== | ||
| + | |||
| + | broadcast(message, frequency, source, job) | ||
| + | |||
| + | Отправляет радиосигнал соседним подпространственным ретрансляторам для вещания со следующими параметрами. | ||
| + | |||
| + | '''message''': радиосообщение | ||
| + | <br>'''frequency''': частота на которой будет передаваться сообщение | ||
| + | <br>'''source''': Имя отправителя. Если имени нет в серверной базе данных голосов (анализ голоса производится каждый раз когда человек говорит в радиоканал) имя будет записано прописными буквами и курсивом для обозначения синтезированного голоса. | ||
| + | <br>'''job''': Профессия оратора. | ||
| + | |||
| + | Examples: | ||
| + | |||
| + | broadcast("Hello world!"); | ||
| + | |||
| + | '''defaults''': | ||
| + | <br>frequency: 1459 | ||
| + | <br>source: имя сервера | ||
| + | <br>job: нет | ||
| + | |||
| + | broadcast("HELP GRIEFF", 1459, "Burer", "Security Officer"); | ||
| + | |||
| + | ==== signal() ==== | ||
| + | |||
| + | signal(frequency, code) | ||
| + | |||
| + | Отправить сигнал с кодом на какой-либо частоте. Работает так же, как и remote signaller device. | ||
| + | |||
| + | '''frequency''': Частота на которой отправится сигнал. | ||
| + | <br>'''code''': Код, который будет отправлен. | ||
| + | |||
| + | Examples: | ||
| + | |||
| + | signal(1359, 25); | ||
| + | |||
| + | '''defaults''': | ||
| + | <br>frequency: 1459 | ||
| + | <br>code: 30 | ||
| + | |||
| + | ==== mem() ==== | ||
| + | |||
| + | mem(key, value) | ||
| + | |||
| + | Переменные объявленные в скрипте обнуляются после выполнения скрипта. Функция mem позволяет сохранить информацию в память сервера, чтобы она могла быть использована в последующих исполнениях скрипта. | ||
| + | Каждый телекоммуникационный сервер содержит свою отдельную базу данных, в виде hash таблицы --- структуры данных, состоящей из пар key-value(ключ-значение). | ||
| + | Вызванная с ключjм в качестве аргумента, mem вернет ассоциированное значение. Вызванная с двумя аргументами, mem установит связь между значением и ключом. | ||
| + | |||
| + | '''key''': Строка, используемая для обозначения сохраняемой переменной. | ||
| + | <br>'''value''': Информация, которую вы хотите сохранить. Может быть любого типа. | ||
| + | |||
| + | Examples: | ||
| + | |||
| + | $source = "Jarsh Mellow"; | ||
| + | mem($source + "'s Mom"); // возвращает значение(value) связанное с ключом(key) "Jarsh Mellow's Mom". Возвращает null/0, если не найдено. | ||
| + | mem($source + "'s Mom", "Lindsay Donk"); //задает связь ключа(key) "Jarsh Mellow's Mom" со значением(value) "Lindsay Donk". | ||
== Операторы == | == Операторы == | ||
Версия от 14:34, 27 июля 2016
|
В разработке… |
| Данная статья помечена как неоконченная. Это означает, что статья находится на доработке, поэтому может быть неверна или неактуальна. Вы можете помочь проекту |
Расшифровка
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.
Тип переменной объявлять не нужно. По умолчанию любая переменная, которой не было присвоено значение, содержит пустую строку. Тип переменной не фиксирован, одной и той же переменной можно присваивать значения разных типов.
Traffic Control Systems Implementation
Система телекоммуникаций напрямую связана с TCS scripting implementation. В ней присутствуют следующие функции и возможности.
Модификация сигнала в реальном времени
Если код настроен на автоматическое исполнение, сигналы сначала будут выполнять сохраненный на сервере код. Информация о сигналах хранится в следующих переменных:
$source // источник сигнала $content // содержание сигнала $freq // частота на которой передается сигнал $pass // определяет будет ли транслирован сигнал $job // профессия (только для радиосообщений) оратора
Функции
TCS также содержит следующие функции (параметрами можно пренебречь; тогда они будут назначены автоматически):
broadcast()
broadcast(message, frequency, source, job)
Отправляет радиосигнал соседним подпространственным ретрансляторам для вещания со следующими параметрами.
message: радиосообщение
frequency: частота на которой будет передаваться сообщение
source: Имя отправителя. Если имени нет в серверной базе данных голосов (анализ голоса производится каждый раз когда человек говорит в радиоканал) имя будет записано прописными буквами и курсивом для обозначения синтезированного голоса.
job: Профессия оратора.
Examples:
broadcast("Hello world!");
defaults:
frequency: 1459
source: имя сервера
job: нет
broadcast("HELP GRIEFF", 1459, "Burer", "Security Officer");
signal()
signal(frequency, code)
Отправить сигнал с кодом на какой-либо частоте. Работает так же, как и remote signaller device.
frequency: Частота на которой отправится сигнал.
code: Код, который будет отправлен.
Examples:
signal(1359, 25);
defaults:
frequency: 1459
code: 30
mem()
mem(key, value)
Переменные объявленные в скрипте обнуляются после выполнения скрипта. Функция mem позволяет сохранить информацию в память сервера, чтобы она могла быть использована в последующих исполнениях скрипта. Каждый телекоммуникационный сервер содержит свою отдельную базу данных, в виде hash таблицы --- структуры данных, состоящей из пар key-value(ключ-значение). Вызванная с ключjм в качестве аргумента, mem вернет ассоциированное значение. Вызванная с двумя аргументами, mem установит связь между значением и ключом.
key: Строка, используемая для обозначения сохраняемой переменной.
value: Информация, которую вы хотите сохранить. Может быть любого типа.
Examples:
$source = "Jarsh Mellow"; mem($source + "'s Mom"); // возвращает значение(value) связанное с ключом(key) "Jarsh Mellow's Mom". Возвращает null/0, если не найдено. mem($source + "'s Mom", "Lindsay Donk"); //задает связь ключа(key) "Jarsh Mellow's Mom" со значением(value) "Lindsay Donk".
Операторы
Бинарные
| Использование | Использование |
|---|---|
| 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 |
