Форум Anivisual закрыт. Вы не можете создавать новые темы или писать ответы. Форум будет работать в режиме архива.
Пользователи · Поиск по форуму · · · Регистрация

Форум о визуальных новеллах » Для разработчиков » Ren'Py » Помощь по Ren'Py (Вопрос\Ответ)
Помощь по Ren'Py (Вопрос\Ответ)

Admin

#1
Сюда пользователи сайта могут писать вопросы о тех или иных функциях движка Ren'Py, а мы попытаемся на них ответить:)

JustSpace

#526
Всем привет, есть пара вопросов.
1) Можно ли как-нибудь дизэйблнуть авточтение во время игры, ну или сделать так, чтобы игрок должен был кликнуть для продолжения? pause и renpy.pause(None) не помогают, {w} не подходит, т.к. это у меня происходит во время показа скрина на весь экран, а {w} - текстовый тег
2) Можно ли задать минимальное значение afm? Просто я убрал в игре возможность скипа, но фактически, она осталась, достаточно просто поставить auto forward time на 0, а скорость текста на максимум.

dmit

#527
https://lemmasoft.renai.us/forums/viewtopic.php?t=31339
или кратко:
$ config.locked = False
$ config.skipping = None #this should actually work now regardless of original value
$ config.locked = True
для скрина:
$ renpy.pause(100, hard=True)

Ну а вообще, что это за такая книга которую нельзя просто пролистать? :)
$ preferences.afm_time = 1000
и отключить в настройках слайдер
Сообщение отредактировал dmit - Вторник, 15/Янв/2019, 11:23
планета FOREVER!!!      Unkenbro team

JustSpace

#528
Cпасибо большое, dmit! Не хотел, юзать паузу, но, видимо, другого пути нет, ну да ладно. Afm поставил на 4, а слайдер отключил ток в некоторых частях игры. В 90%-95% случаев слайдер включён, и книгу можно листать) Ну и ещё раз большое спасибо, ибо я не мог это нигде загуглить, и на lemma soft forums мне никто не ответил, ну и ты единственный, кто смог помочь

CHMOnika

#529
Код

I'm sorry, but an uncaught exception occurred.

While running game code:
  File "renpy/common/00start.rpy", line 203, in script call
    if not _restart and auto_load and renpy.can_load(auto_load):
  File "renpy/common/00keymap.rpy", line 446, in script
    python hide:
  File "renpy/common/00keymap.rpy", line 446, in <module>
    python hide:
  File "renpy/common/00keymap.rpy", line 456, in _execute_python_hide
    renpy.load("_reload-2")
Exception: Couldn't find a place to stop rolling back. Perhaps the script changed in an incompatible way?

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

Full traceback:
  File "renpy/common/00start.rpy", line 203, in script call
    if not _restart and auto_load and renpy.can_load(auto_load):
  File "renpy/common/00keymap.rpy", line 446, in script
    python hide:
  File "D:\renpy-7.1.3-sdk\renpy\ast.py", line 881, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "D:\renpy-7.1.3-sdk\renpy\python.py", line 1913, in py_exec_bytecode
    exec bytecode in globals, locals
  File "renpy/common/00keymap.rpy", line 446, in <module>
    python hide:
  File "renpy/common/00keymap.rpy", line 456, in _execute_python_hide
    renpy.load("_reload-2")
  File "D:\renpy-7.1.3-sdk\renpy\loadsave.py", line 730, in load
    log.unfreeze(roots, label="_after_load")
  File "D:\renpy-7.1.3-sdk\renpy\python.py", line 1868, in unfreeze
    self.rollback(0, force=True, label=label, greedy=greedy, on_load=True)
  File "D:\renpy-7.1.3-sdk\renpy\python.py", line 1696, in rollback
    raise Exception("Couldn't find a place to stop rolling back. Perhaps the script changed in an incompatible way?")
Exception: Couldn't find a place to stop rolling back. Perhaps the script changed in an incompatible way?

Windows-7-6.1.7601-SP1
Ren'Py 7.1.3.1092
"Название новеллы"
Mon Mar 04 16:57:21 2019


Вот такая вот шняга вылетает, хотела добавить галерею, но что-то пошло не так wow
Сообщение отредактировал CHMOnika - Понедельник, 04/Мар/2019, 15:59
Вареник

CHMOnika

#532
Цитата dmit ()
Вы взяли галерею из документации?


Да, видимо в этом проблема?

UPD:
Я что-то намутила, вылезло теперь такое ХД
Прикрепления: 2017392.png (12.7 Kb)
Сообщение отредактировал CHMOnika - Среда, 06/Мар/2019, 11:21
Вареник

GCStudio

#534
Всем привет. Есть запырка с функцией.
В общем, есть несколько переменных, пусть будут name1, ..., nameN
Нужна функция, которой будут скармливаться имя переменной и значение, и которая должна, в том числе, присваивать переменной нужное значение.

вызов из кода игры идет как-то так:

Код
$ myfunc  (name1, 2)


Поначалу написал какой-то такой вариант:
Код
init python:
   def myfunc (fname, amount):
        fname1 = amount


Закономерно не работает. Можно сделать вот таким костылем, в объявлением возможной пемеренной, сравнением итд, тогда работает, но нафиг некрасиво и геморно. И в перспективе список переменных будет сильно расширяться.

Код
init python:
   def myfunc (fname, amount):
       global name1
       if fname == name1:
           name1 = amount


Как-бы это сделать попроще и красивее? Чтобы хотя бы не объявлять весь список переменных в функции?
Сообщение отредактировал GCStudio - Понедельник, 08/Апр/2019, 14:50

TGrave

#535
Если речь о динамическом доступе к глобальным переменным, то можно так:
Код
globals()[fname] = amount

А можно просто сделать глобальный словарь:
Код
global var_dict
var_dict[fname] = amount

Ну и обращаться к нему через var_dict. Только нужно не забыть его инициализировать где-то в начале:
Код
global var_dict
var_dict = {}

GCStudio

#536
Нет, не работает. Сделал вот такой примерчик в IDLE

Код
def myfunc (fname, amount):
    globals()[fname] = amount

a = 0
myfunc  (a, 2)
        
print a    


И на выхлопе все равно ноль получил. Или объявлять прям обязательно? Со словарем тоже довольно много возни заполнять его. И это не проще, чем просто сделать перечисление всех возможных для этой функции переменных.
Сообщение отредактировал GCStudio - Понедельник, 08/Апр/2019, 15:36

TGrave

#537
Так функции передавать нужно имя переменной, а не ее саму :)
Код
> myfunc ("a", 2)
> a
2
>
Сообщение отредактировал TGrave - Понедельник, 08/Апр/2019, 15:36

TGrave

#540
Реплики можно переключать, если передавать параметр interact=False, например:
Код
renpy.say(eileen, "Hello! You do not have to click after this line, just wait 3 seconds", interact=False)
renpy.pause(3.0)
Сообщение отредактировал TGrave - Понедельник, 08/Апр/2019, 17:45
Форум о визуальных новеллах » Для разработчиков » Ren'Py » Помощь по Ren'Py (Вопрос\Ответ)
Поиск: