Доброго времени суток! У меня тут возникла проблема. Некорректно работает кнопка "Подтвердить" в окне ввода имени персонажа при пустом поле. По сути просто напросто не видит переменную.

Цитата
I'm sorry, but an uncaught exception occurred.
While running game code:
  File "game/script.rpy", line 13, in script
    if cpl == "":
  File "game/script.rpy", line 13, in <module>
    if cpl == "":
NameError: name 'cpl' is not defined

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "game/script.rpy", line 13, in script
    if cpl == "":
  File "renpy/ast.py", line 1852, in execute
    if renpy.python.py_eval(condition):
  File "renpy/python.py", line 2249, in py_eval
    return py_eval_bytecode(code, globals, locals)
  File "renpy/python.py", line 2242, in py_eval_bytecode
    return eval(bytecode, globals, locals)
  File "game/script.rpy", line 13, in <module>
    if cpl == "":
NameError: name 'cpl' is not defined

Windows-7-6.1.7601-SP1
Ren'Py 7.4.5.1648
Memories 1.0
Fri Aug  6 22:44:25 2021

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

Собственно, сам код:

Переменная в файле characters:
Код
define player = Character("[cpl]", color="#ffffff")

Запрос имени в файле script:
Код
label namepl:        "Как же меня зовут?"
        $ cpl = renpy.input("Назовите себя:", screen="charname", length=24, exclude="'\{\}\[\]@.,<>\"\|/№#$;%^:&?*()_=+1234567890`~").strip()
   Пробовал размещать дефайн персонажа и запрос имени в один файл - безрезультатно.

Окно:
Код
screen charname(prompt):    modal True
    frame:
        background Frame("#000000")
        align (0.5,0.5)
        xsize 600 ysize 350
        vbox:
            xfill True
            yfill True
            text prompt xalign 0.5
            input id "input" xalign 0.5
            hbox:
                xalign 0.5
                textbutton("Подтвердить"):
                    action Jump ("test")

Система "Анти-дебил", не позволяющая игроку пройти с пустым полем:
Код
label test:        "..."
        if cpl == "":
            "\[Требуется ввести имя\]"
            jump namepl
        else:
            "Точно."
            jump next

Продолжение игры при наличии имени:
   
Код
label next:        player "Меня зовут [cpl]."

P.s. У меня нет желания устанавливать "имя по умолчанию", дабы не конкретизировать персонажа.