Пользователи · Поиск по форуму · · Вход в аккаунт · Регистрация |
Форум о визуальных новеллах Для разработчиков Ren'Py Помощь по Ren'Py (Вопрос\Ответ) |
Помощь по Ren'Py (Вопрос\Ответ) |
Katruna#1217Noobius, я правильно поняла, что второй вариант ответа присутствует только если значение переменной больше 2?
Если так, то лично я делала такой финт ушами и все прекрасно работало у меня: Код if blue == 2: menu: "Позади меня все продолжали раздаваться ругательства из неизвестного мне места. " "{color=#000000}Потроллить призрака.{/color}": jump good_blue "{color=#000000}Поругаться с призраком.{/color}": jump bad_blue elif blue != 2: menu: "Позади меня все продолжали раздаваться ругательства из неизвестного мне места. " "{color=#000000}Поругаться с призраком.{/color}": jump bad_blue Но у меня при втором варианте просто нет возможности другого выбора. т.е. можно сделать кнопку, но она все равно будет вести к какому-то результату. А тебе, как я поняла, нужно что бы она была, но возможность выбрать ее - не было. Увы, но я не знаю, как сделать такую фичу.. может кто-то еще подскажет тебе.. |
Noobius#1219СОНЦЕ, спасибо, работает!
А кто-нибудь подскажет, как сделать анимацию частью содержимого в метке? Например, Код #Новая метка: label metka: show kartinka vasiatko "Реплика Васятки" hide kartinka image animation: animation_a with Dissolve (0.08) pause 0.15 animation_b with Dissolve (0.08) pause 0.15 repeat show kartinka_b vasiatko "Другая реплика Васятки" hide kartinka_b return И анимации не выводятся - вместо них сразу выводится kartinka_b. А если сделать image animation с начала строки, как метку, то она выводится. Но тогда непонятно, как переходить между метками и анимациями. |
Aleks-sempai#1220
Код image kartinka: "kartinka1" pause 0.1 "kartinka2" pause 0.1 label start: "..." scene kartinka #или show kartinka, если это не фон, а спрайт "..." return Сообщение отредактировал Aleks-sempai - Пятница, 06/Авг/2021, 15:09
|
Noobius#1221Получилось, спасибо большое. Самое смешное, что я пытался прописать этот же код 2 раза и подумал, что иду не тем путем. Но раз знающий человек сказал, что путь верный - попробовал в 3-й раз, и получилось. Возможно, в первые 2 раза не получалось, потому что я писал "show kartinka", но не закрывал ее (hide) - подумал, что для анимации это не нужно. Оказалось, что нужно. |
TestGameHentai#1222Доброго времени суток! У меня тут возникла проблема. Некорректно работает кнопка "Подтвердить" в окне ввода имени персонажа при пустом поле. По сути просто напросто не видит переменную.
Цитата 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. У меня нет желания устанавливать "имя по умолчанию", дабы не конкретизировать персонажа. |
lf2mr#1223Есть функция меняющая какие-то параметры, например:
Код def myfunc(): globals()['x'] = "Значение" return |
СОНЦЕ#1224TestGameHentai,
не удалось воспроизвести ошибку, но из кусочков предоставленнного кода кажется получилось сделать чтоб работало. проверь Код default cpl = '' define player = Character("[cpl]", color="#ffffff") init python: input_name = VariableInputValue('cpl',returnable = True) 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" value input_name xalign 0.5 hbox: xalign 0.5 textbutton("Подтвердить"): action Return(cpl) label start: label namepl: "Как же меня зовут?" $ cpl = renpy.input("Назовите себя:", screen="charname", length=24, exclude="'\{\}\[\]@.,<>\"\|/№#$;%^:&?*()_=+1234567890`~").strip() #$ cpl = _return jump test return label test: "..." if cpl == "": "\[Требуется ввести имя\]" jump namepl else: "Точно." jump next label next: player "Меня зовут [cpl]." return lf2mr, тут я честно говоря плаваю, и вероятно есть более правильное решение, например через команду on но там в интерфейсе по умолчанию все сложно, потому я обычно костылирую через timer Код screen myscreen: timer .01 action Function(myfunc) Но возможно следует вообще пересмотреть логику функции и сделать ее более благоприятной для движка, тоесть чтобы оно не делало что-то гловально вне языка скринов цитирую: Цитата Screens must not cause side effects that are visible from outside the screen. Ren'Py will run a screen multiple times, as it deems necessary. It runs a screen as part of the image prediction process, before the screen is first shown. As a result, if running a screen has side effects, those side effects may occur at unpredictable times. Using Python generators in screens may cause unpredictable results. This traces back to an issue with the way the Python interpreter compiles Python source code that will be used in a screen context. Generators can be used in Python functions called from a screen, but not in the screen itself. |
pirsus#1225Ребята, подскажите.
Надо вывести на экран текст одновременно в нескольких местах. Код show text "{size=50}[money]": xpos 1340 ypos 175 Одиночная команда работает. Но если я пытаюсь разместить несколько команд, то уже нет Код show text "{size=50}[money]": xpos 1340 ypos 175 show text "{size=50}[gold]": xpos 1340 ypos 225 Код show text "{size=50}[money]": xpos 1340 ypos 175 pause 0.1 show text "{size=50}[gold]": xpos 1340 ypos 225 А как прописать, чтобы отображались оба числа одновременно? |
FreQl#1227Хочу подправить косячки мелкие в новелле, в которой есть 2 языка (английский и русский), но когда исправляю косяк в основном скрипте (который на русском), то когда перехожу на английский перевод, то там уже та исправленная строка на русском. Пытался в файле с англ переводом, в строке old изменить, но тоже безрезультатно...
Есть ли способ подправить косяк в обеих переводах, но при этом не ломать ничего?) |
dmit#1228FreQl, если снова нажать "создать перевод", то изменённые строки просто допишутся в конец файла. Старые не удаляются, их можно удалить в ручную самостоятельно (или заменить на новые для эстетического удовольствия).
планета FOREVER!!! Unkenbro team
|
| |||