Цитата
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
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()
$ 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")
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
if cpl == "":
"\[Требуется ввести имя\]"
jump namepl
else:
"Точно."
jump next
Продолжение игры при наличии имени:
Код
label next: player "Меня зовут [cpl]."
P.s. У меня нет желания устанавливать "имя по умолчанию", дабы не конкретизировать персонажа.