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

Материал из Chaotic Onyx
Перейти к навигацииПерейти к поиску
(Добавил данных для перевода)
(Перевод.)
Строка 1: Строка 1:
 
{{Заготовка|url="http://www.ss13.eu/wiki/index.php/NTSL"}}
 
{{Заготовка|url="http://www.ss13.eu/wiki/index.php/NTSL"}}
 
== Расшифровка ==
 
== Расшифровка ==
NanoTrasen Scripting Language
+
NanoTrasen Scripting Language (Язык Скрипта НаноТрейзен)
  
 
==Как начать пользоваться NTSL==
 
==Как начать пользоваться NTSL==
Строка 19: Строка 19:
 
== Гайд по синтаксису ==
 
== Гайд по синтаксису ==
  
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.  
+
NTSL несложен, так как был создан для пользователей всех уровней умения программирования. Пробелы игнорируются, точки с запятой требуются и квадратные скобки также требуются.
  
  
Строка 34: Строка 34:
 
=== Функции ===
 
=== Функции ===
  
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:
+
Функции могут быть заданы динамично. Есть разные предопределённые функции для реализации цели на NTSL, но базовые функции остаются такими же. Вот пример, как Вы можете использовать функцию:
  
  
Строка 53: Строка 53:
 
=== Code Blocks ===
 
=== 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();
 
  $myGlobalVariable = getNumber();
Строка 63: Строка 63:
 
  }
 
  }
 
   
 
   
  $myLocalVariable = 50; // this is invalid; myLocalVariable does not exist in this scope
+
  $myLocalVariable = 50; // Это неверно; myLocalVariable не существует в этом блоке
 
 
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 ===  
 
=== 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".
+
Команда while() будет обрабатываться снова и снова до тех пор, пока указанное в ней равенство / неравенство не будет верно.
 +
Оператор ''!='' обозначает "неверно".
  
 
Список операторов сравнения:
 
Список операторов сравнения:
Строка 81: Строка 81:
 
*'''>=''' : Больше чем или равно
 
*'''>=''' : Больше чем или равно
  
 +
Также могут быть использованы условия ''if()'' (если), ''elseif()'' (также если) и ''else()'' (иначе). Пример:
  
Relational operators can be used in if(), and elseif(), statements, which are used the following way:
+
  if($myVariableNumber == 50) // Если число равно пятидесяти.
 
 
  if($myVariableNumber == 50) // if my number is 50
 
 
  {
 
  {
     // code block
+
     // Блок кода
 
  }
 
  }
  elseif($myVariableNumber <= 30) // if not, is my number 30 or less?
+
  elseif($myVariableNumber <= 30) // Если число не равно пятидесяти, но меньше или равно тридцати.
 
  {   
 
  {   
     // code block
+
     // Блок кода
 
  }
 
  }
  else // if not either 50 OR 30 or more, do this instead
+
  else // Если ни одно из условий не верно.
 
  {
 
  {
 
     // code block
 
     // code block

Версия от 22:26, 30 апреля 2015

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


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 для каждого канала, если желаете.

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

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 не существует в этом блоке

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

Conditionals

Команда 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