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

  • Страница 1 из 1
  • 1
Результаты поиска

MrDench

#1 | Тема: Как сохранять достижения в RenPy без библиотеки Steam? Решен
Всем привет, всем доброго времени суток, всем чая и шоколада.
Меня зовут Денис, я новенький на этом сайте:)
Возможно я бы тут и не зарегистрировался, если бы не моя беда. Я такой человек, который предпочитает разобраться в проблеме сам, ведь у кого-то наверняка была такая-же проблема... Но увы я чет не нашел:/.
Прошу помощи у вас ребят. Вы моя последняя надежда.

Теперь объясню почему я хочу это сделать без библиотеки стима. Я не планирую выкладывать эту игру в стим или на другие источники, т.к. это будет игра поздравление. У моего хорошего друга скоро будет ДР, а окно достижений полностью не реализовано.
В script.rpy у меня следующая вещь:
init:
define persistant = [""]
$ persistant.achieve1_unlocked = False
$ persistant.achieve2_unlocked = False
$ persistant.achieve3_unlocked = False
$ persistant.achieve4_unlocked = False
$ persistant.achieve5_unlocked = False
$ persistant.achieve6_unlocked = False
$ persistant.achieve7_unlocked = False
$ persistant.achieve8_unlocked = False
------------------------------------------
Оно работает, если все поставить на "True", то мое рукописное окно будет работать. Соответственно вот код самого окна в screens.rpy:

screen achievments:
tag menu
add "gui/achieve/achieve_menu.png"
if persistant.achieve1_unlocked:
imagebutton auto "gui/achieve/achieve1_%s.png" xpos 0 ypos 0 focus_mask True action ShowMenu("achieve1")
if persistant.achieve2_unlocked:
imagebutton auto "gui/achieve/achieve2_%s.png" xpos 0 ypos 0 focus_mask True action ShowMenu("achieve2")
if persistant.achieve3_unlocked:
imagebutton auto "gui/achieve/achieve3_%s.png" xpos 0 ypos 0 focus_mask True action ShowMenu("achieve3")
if persistant.achieve4_unlocked:
imagebutton auto "gui/achieve/achieve4_%s.png" xpos 0 ypos 0 focus_mask True action ShowMenu("achieve4")
if persistant.achieve5_unlocked:
imagebutton auto "gui/achieve/achieve5_%s.png" xpos 0 ypos 0 focus_mask True action ShowMenu("achieve5")
if persistant.achieve6_unlocked:
imagebutton auto "gui/achieve/achieve6_%s.png" xpos 0 ypos 0 focus_mask True action ShowMenu("achieve6")
if persistant.achieve7_unlocked:
imagebutton auto "gui/achieve/achieve7_%s.png" xpos 0 ypos 0 focus_mask True action ShowMenu("achieve7")
if persistant.achieve8_unlocked:
imagebutton auto "gui/achieve/achieve8_%s.png" xpos 0 ypos 0 focus_mask True action ShowMenu("achieve8")
imagebutton auto "gui/achieve/menu_%s.png" xpos 0 ypos 0 focus_mask True action ShowMenu("main_menu")
screen achieve1:
tag menu
imagemap:
ground "images/achieve1.png"
hotspot (0, 0, 1920, 1080) action ShowMenu("achievments")
screen achieve2:
tag menu
imagemap:
ground "images/achieve2.png"
hotspot (0, 0, 1920, 1080) action ShowMenu("achievments")
screen achieve3:
tag menu
imagemap:
ground "images/achieve3.png"
hotspot (0, 0, 1920, 1080) action ShowMenu("achievments")
screen achieve4:
tag menu
imagemap:
ground "images/achieve4.png"
hotspot (0, 0, 1920, 1080) action ShowMenu("achievments")
screen achieve5:
tag menu
imagemap:
ground "images/achieve5.png"
hotspot (0, 0, 1920, 1080) action ShowMenu("achievments")
screen achieve6:
tag menu
imagemap:
ground "images/achieve6.png"
hotspot (0, 0, 1920, 1080) action ShowMenu("achievments")
screen achieve7:
tag menu
imagemap:
ground "images/achieve7.png"
hotspot (0, 0, 1920, 1080) action ShowMenu("achievments")
screen achieve8:
tag menu
imagemap:
ground "images/achieve8.png"
hotspot (0, 0, 1920, 1080) action ShowMenu("achievments")
----------------------------------------------------------------------------------------------------------

Сама проблема - после перезапуска игры, полученные достижения возвращаются в ложное состояние. Т.е. если я зашел в игру сегодня и получил допустим 1 и 5 достижения, то после перезапуска или когда зайду завтра, будет опять 0 открытых достижений.

Вопрос: Можно ли как-то сохранять состояние переменных, чтобы после перезапуска они оставались в своем состоянии? Может когда игра будет скомпилирована, эта проблема с пропаданием состояний переменных пропадет?
Сообщение отредактировал MrDench - Четверг, 03/Дек/2020, 14:27
:)

MrDench

#2 | Тема: Как сохранять достижения в RenPy без библиотеки Steam? Решен
Цитата mephi1984 ()
Уверен на 95% что проблема вот тут:
Код
define persistant = [""]
$ persistant.achieve1_unlocked = False
$ persistant.achieve2_unlocked = False
$ persistant.achieve3_unlocked = False
$ persistant.achieve4_unlocked = False
$ persistant.achieve5_unlocked = False
$ persistant.achieve6_unlocked = False
$ persistant.achieve7_unlocked = False
$ persistant.achieve8_unlocked = False

Просто убери этот код, должно все заработать. В питоне не нужно заранее объявлять или инициализировать переменные.

Для примера, вот как это сделано у меня:


Код
screen main_menu():

    ## Этот тег гарантирует, что любой другой экран с тем же тегом будет
    ## заменять этот.
    tag menu

    style_prefix "main_menu"

    add gui.main_menu_background

    if persistent.menu_unlocked_aliya: # Unlocked Aliya
        add gui.main_menu_background_aliya_unlocked
    else:
        add gui.main_menu_background_aliya_locked

И вот как я ставлю эту переменную в игре:


Код
$ persistent.menu_unlocked_aliya = True

Сейчас попробую. Просто, мне пришлось объявлять "persistant", ибо ругался ренпи. Но я вижу что у тебя написано "pesistEnt" и возможно в этом тоже ошибка(у меня). Если это панацея от проблемы, то большое-большое спасибо!:)

Добавлено (03.12.2020, 15:20)
---------------------------------------------

Цитата mephi1984 ()
Уверен на 95% что проблема вот тут:
Код
define persistant = [""]
$ persistant.achieve1_unlocked = False
$ persistant.achieve2_unlocked = False
$ persistant.achieve3_unlocked = False
$ persistant.achieve4_unlocked = False
$ persistant.achieve5_unlocked = False
$ persistant.achieve6_unlocked = False
$ persistant.achieve7_unlocked = False
$ persistant.achieve8_unlocked = False

Просто убери этот код, должно все заработать. В питоне не нужно заранее объявлять или инициализировать переменные.

Для примера, вот как это сделано у меня:


Код
screen main_menu():

    ## Этот тег гарантирует, что любой другой экран с тем же тегом будет
    ## заменять этот.
    tag menu

    style_prefix "main_menu"

    add gui.main_menu_background

    if persistent.menu_unlocked_aliya: # Unlocked Aliya
        add gui.main_menu_background_aliya_unlocked
    else:
        add gui.main_menu_background_aliya_locked

И вот как я ставлю эту переменную в игре:


Код
$ persistent.menu_unlocked_aliya = True

И все работает без дополнительных инициализации

ДА! Ты был прав. Оно и в правду теперь работает. Ты спас мне жизнь и все что можно. Большое спасибо!:))
:)

MrDench

#4 | Тема: [Нужна помощь] Кастомное меню иневентаря
Всем доброго здравия! У меня возникла проблема (опять), с кастомным экраном (опять X2). Я создаю игру на подобии RPG, понимаю, Ren'Py не лучший вариант для этого, но других движков я пока не изучал х). 
Проблема возникла с экраном инвентаря. Возникающая ошибка: NameError: Name 'name' is not defined.   

Вопрос, можно ли как-то взять переменную "name" из script.rpy? У меня эта переменная берет начало в начале игры. Я хочу вставить эту переменную, для того чтобы на экране инвентаря было имя персонажа.

Вот код экрана:           (P.s. заранее благодарю всех!)

screen inventory():
    tag menu
    default currenthp = 100  #comment in realise
    default hpmax = 100 #comment in realise
    default currentlvl = 0 #comment in realise
    default currentarmor = 0 #comment in realise
    default tonextlvl = 27203 #comment in realise
    default money = 0 #comment in realise
    add "gui/inventory/inventory_menu.png"
    imagebutton auto  "gui/inventory/return_%s.png" xpos 0 ypos 0 focus_mask True action ShowMenu("main_menu")
    imagebutton auto "gui/inventory/armor_inv_%s.png" xpos 0 ypos 0 focus_mask True action NullAction()
    imagebutton auto "gui/inventory/eqstuff1_inv_%s.png" xpos 0 ypos 0 focus_mask True action NullAction()
    imagebutton auto "gui/inventory/eqstuff2_inv_%s.png" xpos 0 ypos 0 focus_mask True action NullAction()
    imagebutton auto "gui/inventory/eqstuff3_inv_%s.png" xpos 0 ypos 0 focus_mask True action NullAction()
    imagebutton auto "gui/inventory/weapon_inv_%s.png" xpos 0 ypos 0 focus_mask True action NullAction()
    frame:
        xpos 575 ypos 360 xysize(1316,684)
        viewport:
            mousewheel True
            vbox:
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
    hbox: # hp
        xpos 112 ypos 800
        spacing 10
        text "{color=#000000}[currenthp]/[hpmax]{/color}":
            size 50
    hbox: # lvl
        xpos 1025 ypos 120
        text "{color=#000000}[currentlvl]{/color}":
            size 50
    hbox: # to next lvl
        xpos 1320 ypos 140
        text "{color=#000000} [tonextlvl]EXP{/color}":
            size 20
    hbox: # name
        xpos 1086 ypos 50
        text "{color=#000000}[name]{/color}"
    hbox: #armor
        xpos 190 ypos 870
        text "{color=#000000}[currentarmor]{/color}"
    hbox: #moneh
        xpos 305 ypos 940
        text "{color=#000000}[money]{/color}"
:)
  • Страница 1 из 1
  • 1
Поиск: