Сценарий, интерфейсы и вообще всё, связанное с игрой, пишется в `rpy`-файлах. Эти файлы содержат в себе блоки (`init`, `label` и `screen`), а блоки содержат команды или другие блоки.

## Команда

Состоит из имени команды и её параметров, разделённых пробелом. Например:

    show np smile
    # show - сама команда
    # np smile - её параметры

    pause 5
    # pause - команда
    # 5     - параметр

Параметр паузы (как и некоторых других команд) интерпретируется питоном, поэтому если взять его в скобки (или в 3 пары скобок), то ничего не изменится:

    # писать так не рекомендуется, но это работает:
    pause (5)
    pause (((4 + 1)))

И раз ничего не меняется, то и пробел не игнорируется. Где-то он не нужен, а где-то - необходим:

    pause(5) # неправильно: pause - команда, а не функция питона, нужен разделительный пробел
    pause 5 # правильно

    # $ - команда, параметры которой воспринимаются как код питона
    $ pause 5 # неправильно: в питоне pause - функция, а не команда
    $ pause(5) # правильно

Эта ошибка встречается относительно часто. В том числе и в таком виде:

    x = 0 # неправильно: не существует команды x, которой передавались бы параметры "= 0"
    $x = 0 # неправильно: не существует команды $x

    $ x = 0 # правильно: $ - команда, сообщающая, что её параметры - код для питона
    # питон приравняет x к 0

## Блок

Спец. команда, которая имеет свои внутренние команды или блоки, исполняющиеся последовательно. Вложенные элементы имеют на 1 табуляцию больше, строка заголовка блока должна оканчиваться двоеточием (`:`). Например:

    label start: # основной блок, отступ - 0, в конце - двоеточие
        # вложенные в блок label команды, отступ на 1 больше, 0 + 1 = 1
        scene bg room
        show rn smile
        rn "Привет!"

        # random.random() даёт случайное число от 0 до 1
        if random.random() < 0.5: # вложенный в label _блок_, снова двоеточие в конце
            # команды, вложенные в if, отступ на 1 больше, 1 + 1 = 2
            show rn normal with dspr
            rn "Итак, о чём будет наша новая игра?"

Далее ->
<- Назад