Секретная концовка

Часто задаваемый вопрос: «Как сделать так, чтобы, например, четвертая концовка становилась доступной только при прохождении остальных трёх?»
Сделать это довольно просто и быстро, если воспользоваться списками. В нашем случае важно, что каждую концовку нужно посчитать только один раз. И при накоплении в списке нужного количества (пусть будет 3) концовок, становится доступной последняя. Кстати, в список можно закидывать не индекс концовки, а, например, ее название или описание.

init python:
    # инициализация постоянных данных при первом запуске
    if persistent.ends is None:
        persistent.ends = []
    # функция. запоминаем, что мы прошли концовку, вносим в список, если ее там не было.
    def end(name):
        if not name in persistent.ends:
            persistent.ends.append(name)

# Игра начинается здесь.
label start:
    "Текст новеллы. Бла-бла-бала."
    # конструкцию ниже можно использовать в ллюбом месте скрипта
    # if len(persistent.ends) >= 3:
    #     jump end4
    # даже прямо в меню выбора
    # последний пункт появится, когда будут выбраны хотя бы по разу все остальные
    menu:
        "Выберите каждый вариант хотя бы по разу. Затем снова запускайте игру."
        "К концовке 1":
            jump end1
        "К концовке 2":
            jump end2
        "К концовке 3":
            jump end3
        # следующий пункт меню появится только
        # если длина списка пройденных концовок равна 3 и больше
        "К концовке 4" if len(persistent.ends) >= 3:
            jump end4
    return
# сюда переходим при выборе одного из пунктов
label end1:
    "Концовка 1."
    # запоминаем, что мы ее прошли, вносим в список, если ее там не было
    $ end(1)
    return
label end2:
    "Концовка 2."
    $ end(2)
    return
label end3:
    "Концовка 3."
    $ end(3)
    return
label end4:
    "Концовка 4!"
    return

Комментарии

  1. Блин, кто нибудь напишите пример пожалуйста потому-что я вообще не понимаю что писать (или вообще не писать) тут:
    (именно за место name, и что писать (если надо) в эти [] скобки во втором предложении)

    if persistent.ends is None:
    persistent.ends = []

    def end(name):
    if not name in persistent.ends:
    persistent.ends.append(name)

    ОтветитьУдалить

Отправить комментарий