• MrDench | Дата: Четверг, 03.12.2020, 12:53 | Сообщение # 1 |
Пользователь
Сообщений: 3
| Всем привет, всем доброго времени суток, всем чая и шоколада. Меня зовут Денис, я новенький на этом сайте:) Возможно я бы тут и не зарегистрировался, если бы не моя беда. Я такой человек, который предпочитает разобраться в проблеме сам, ведь у кого-то наверняка была такая-же проблема... Но увы я чет не нашел:/. Прошу помощи у вас ребят. Вы моя последняя надежда.
Теперь объясню почему я хочу это сделать без библиотеки стима. Я не планирую выкладывать эту игру в стим или на другие источники, т.к. это будет игра поздравление. У моего хорошего друга скоро будет ДР, а окно достижений полностью не реализовано. В 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.12.2020, 15:27 |
|
|
|
• mephi1984 | Дата: Четверг, 03.12.2020, 13:20 | Сообщение # 2 |
Проверенный
Сообщений: 4
| Уверен на 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 | Дата: Четверг, 03.12.2020, 15:12 | Сообщение # 3 |
Пользователь
Сообщений: 3
| Цитата 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
И все работает без дополнительных инициализации ДА! Ты был прав. Оно и в правду теперь работает. Ты спас мне жизнь и все что можно. Большое спасибо!:))
:)
|
|
|
|
• mephi1984 | Дата: Четверг, 03.12.2020, 15:58 | Сообщение # 4 |
Проверенный
Сообщений: 4
| Да не за что, удачи тебе там
|
|
|
|
• MrDench | Дата: Суббота, 05.12.2020, 15:07 | Сообщение # 5 |
Пользователь
Сообщений: 3
| mephi1984, спасибо и тебе!:)
:)
|
|
|
|