Переменные и условия

Для лучшего понимания работы переменных и типов данных в Ren'Py рекомендуется изучить работу переменных в Python 2.7. Это не займёт много времени, но поможет в понимании материала.

Статья на сайте "Учимся с Python".

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

Объявлять свои переменные можно в любом месте кода игры, и делается это, как с любым Python-кодом, в однострочных блоках $ или многострочных блоках python.
Синтаксис:

    $ <Название переменной> = <Значение переменной>
    python:
        <Название переменной> = <Значение переменной>

Условия

Используя переменные ваш мод может ветвиться, а игрок — выходить на разные концовки. Для этого существуют условные конструксии с if, elif и else и цикл while.

Блок if

Если вам нужно проверить переменную на что-либо, то вам нужен этот блок.
Синтаксис:

    if <Ваше выражение>:
        <Команды при успехе>

Пример:

    if route == "dv":
        jump dv_route

Имейте в виду, что условие будет выполнено, только если ему передано значение истины или выражение, которое выдаёт истину.

Также имейте в виду, что помимо jump, как указано в примерах, можно вставлять целые отрывки повествования.

Блок else

Блок else выполнит свои команды, если проверка была провалена.
Синтаксис:

    if <Ваше выражение>:
        <Команды при успехе>
    else:
        <Команды при провале>

Пример:

    if route == "dv":
        jump dv_route
    else:
        jump other_route

Блок elif

Блок elif позволяет выполнить дополнительные проверки перед провалом.
Синтаксис:

    if <Ваше выражение>:
        <Команды при успехе>
    elif <Другое выражение>:
        <Команды при успехе этого условия>

Пример:

    if route == "dv":
        jump dv_route
    elif route == "sl":
        jump sl_route

Дополнительных проверок может быть сколько угодно, и их также можно совмещать с блоком else.

Пример:

    if route == "dv":
        jump dv_route
    elif route == "sl":
        jump sl_route
    elif route == "un":
        jump un_route
    elif route == "mz":
        jump mz_route
    else:
        jump other_route

Блок while

Блок while выполняет свои команды пока выражение в его условии равно истине.
Синтаксис:

    while <Ваше выражение>:
        <Команды при успехе>

Пример:

    while True:
        "Да здравствует бесконечный цикл!"