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

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

Admin

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

stop_control

#1036
Продублирую свой вопрос...

Когда мы только загружаем игру, у нас при попытке загрузить сохранение стоят пустые слоты загрузки.
А можно как-то по нажатию кнопочки или достижению переменной N значения 5 (N =5), обнулять все слоты записи ?

Так сказать месть разработчика в сторону игрока )
«Иди пожалуйся своей мамочке»

dmit

#1037
stop_control, типа:

Код

  patch = os.path.join(os.environ['appdata'], 'RenPy', config.save_directory)
  a = [os.remove(os.path.join(patch,i)) for i in os.listdir(patch)]
  patch = os.path.abspath(os.path.join(config.gamedir, "saves"))
  a = [os.remove(os.path.join(patch,i)) for i in os.listdir(patch)]


удалить файлы сохранения. Это для win только.
есть ещё такой пример ( не проверял)
Код
init python:
    def delete_saves():
        saved_games = renpy.list_saved_games(fast = True)
        for i in saved_games:
           renpy.unlink_save(1)

$ delete_saves()
Сообщение отредактировал dmit - Среда, 03/Фев/2021, 21:15
планета FOREVER!!!      Unkenbro team

stop_control

#1038
Спасибо

Проверенная версия скрипта звучит так:


Код
init python:
    
    slots = renpy.list_slots()

    def delete_slot(number = 0, all = False):                    # Функция затирания сохранений
        slots = renpy.list_slots()
        saveGames = renpy.list_saved_games()
        slots_file_name = {}
        for count, i in enumerate(slots):
            slots_file_name [count]= [i, str(saveGames[count][0])]
        if number != 0:
            renpy.unlink_save(slots_file_name[number - 1][1])
        elif all:
            for i in slots_file_name:
                renpy.unlink_save(slots_file_name[i][1])

$ delete_slot(0, True)  #set the number to 0, then follow it with a True.           # Затереть все сохранения[/i]


Все переменные остаются живые, а вот проходить (проматывать)  новеллу придется заново.

Как я завидую вашим знаниям движка - экономящим в итоге время на поиски...
Сообщение отредактировал stop_control - Среда, 03/Фев/2021, 22:43
«Иди пожалуйся своей мамочке»

MrGeo

#1040
Как сделать так, чтобы во всех диалогах, независимо от персонажей и если персонаж не указан, у допустим белого текста была черная обводка. Если только через тень, то как сделать так, чтобы она была у реплики без персонажа?

Floyd

#1041
MrGeo,
Обводка для всего текста в игре, вставлять в gui.rpy:
Код
init python:   
    style.default.outlines = [ (2, "#000", 0, 0) ]
Обводка для текста не от лица персонажа:

Код
define narrator = Character(None, what_outlines=[ (2, "#000") ] )
Сообщение отредактировал Floyd - Воскресенье, 21/Фев/2021, 13:37

Katruna

#1042
День добрый, я вновь с очередным вопросом.
По некоторым причинам, я не хочу, что бы при выведение вариантов ответа скрывалось диалоговое окно.
По классике- при использовании такого формата кода:

Код

  "Какой-то вопрос ?"
    $ quick_menu = True  
    menu:

        "Такой-то ответ":
            jump first
        "Другой-то ответ":
            jump second

label first:
    "Это был первый ответ"
    jump story    
        
label second:
    "Это был второй ответ"
    jump story
 

Диалоговое окно скрывается. А я хочу оставить его, что был виден вопрос и немного другая еще инфа. 
Попыталась потыкать и закинуть в данный код строчку:

Код

  $ quick_menu = True
  
 но ничего не поменялось.. потому, прошу совета..
Художник в душе и в жизни
Дракон в душе и в жизни
Butterfly effect

СОНЦЕ

#1043
Код

    "Какой-то вопрос ?"
    menu:
        "Такая-то подсказка"

        "Такой-то ответ":
            jump first
        "Другой-то ответ":
            jump second
Сообщение отредактировал СОНЦЕ - Понедельник, 22/Фев/2021, 12:16

MrGeo

#1045
Цитата Floyd ()
MrGeo,Обводка для всего текста в игре, вставлять в gui.rpy:
Код
init python:   
    style.default.outlines = [ (2, "#000", 0, 0) ]
Блин, спасибо огромное. А откуда можно такую информацию черпать? Как ни пытался гуглить, такого точного решения не нашел. Даже пример видел, где обводка была с одного угла больше, чем с другого, с чего подумал что тенью можно сделать.

Floyd

#1046
MrGeo, официальная документация и форум lemmasoft. На английском языке всё, конечно, но если надо на русском - у нас есть СОНЦЕ, который, согласно мифам и легендам, о ренпае знает больше, чем его создатели.

Katruna

#1047
И да, второй раз за день я сюда  smile_13  Ну не получается у меня каменный цветок, без помощи..
В общем, задумала я сделать таймер для некоторых выбор в проекте.. и не смогла.. нашла несколько вариантов в сети и все они при копировании в код выдают страшные ошибки..
(наверное потому что статьи в основном за 2016 год)

Потому прошу помощи.. в идеале бы с пояснениями, что и за что отвечают кусочки кода..
(в планах сделать еще и крафтовый таймер этот)
Художник в душе и в жизни
Дракон в душе и в жизни
Butterfly effect

СОНЦЕ

#1048
Katruna,
вот явно допотопный код из загашника ренпи-мануалов выдавал страшные ошибки потому что не был объявлен персонаж "Эйлин" а в остальном работает как шарм

Код

  screen countdown:
    timer 0.01 repeat True action If(time > 0, true=SetVariable('time', time - 0.01), false=[Hide('countdown'), Jump(timer_jump)])
    bar value time range timer_range xalign 0.5 yalign 0.9 xmaximum 300

label start:

label menu1:
    $ time = 5
    $ timer_range = 5
    $ timer_jump = 'menu1_slow'
    show screen countdown
    menu:
        "Кыбрать Котоноху":
            hide screen countdown
            "Макото выбрал Котоноху."
            jump menu1_end
        "Выбрать Секай":
            hide screen countdown
            "Макото выбрал Секай"
            jump menu1_end
   
label menu1_slow:
    "Макото стормозил потому что выбрал втихаря обоих."
    
label menu1_end:
    "И теперь ему гаплык."

    return


как оно работает:

Код

  screen countdown:
    timer 0.01 repeat True action If(time > 0, true=SetVariable('time', time - 0.01), false=[Hide('countdown'), Jump(timer_jump)])
    bar value time range timer_range xalign 0.5 yalign 0.9 xmaximum 300

вот эта ^^^ штука -- это дополнительная менюшка, которая через какоето время самозакрывается и выдергивает игрока на указанный label . где строчка timer это сам таймер, а bar - это то как он отображается на экране
использует переменные time, timer_range и timer_jump соответсвенно текущее время, время старта, и label куда отправлять если игрок тормоз. следует задавать их значения перед каждым запуском
Сообщение отредактировал СОНЦЕ - Понедельник, 22/Фев/2021, 14:55

MrGeo

#1050
Floyd, а есть возможность обводку сделать только у диалогов и имен персонажей? А то в главном меню и сохранениях выглядит это не очень.
Путем интернет поиска пришел к вот такому:
Код
define gui.text_outlines = [ (1, "#000", 0, 0) ]
 Но результат после удаления вашего кода не изменился от слова совсем, а почему, не понимаю.
Форум о визуальных новеллах » Для разработчиков » Ren'Py » Помощь по Ren'Py (Вопрос\Ответ)
Поиск: