Войти на сайт

Авторизация, ждите ...
×
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.

ТЕМА: [VX Ace] Что сохраняет сохранение?

[VX Ace] Что сохраняет сохранение? 5 года 4 мес. назад #106999

  • niseoth
  • niseoth аватар
  • Вне сайта
  • Познающий
  • Сообщений: 17
  • Спасибо получено: 23
Выход с карты и последующий вход не сохраняет позиции перемещённых эвентов, а вот сохранение и загрузка -- сохраняют.
Насколько надёжна функция сохранения, если вся игра пройдёт на одной карте? Например, сохраняется ли выполняемая строка в параллельном эвенте и локальные свитчи эвентов? Заменённые эвентом тайлсет и бэкграунд?

Можно и самому протестировать, но я надеюсь, что кто-то это уже сделал.
Администратор запретил публиковать записи гостям.

[VX Ace] Что сохраняет сохранение? 5 года 4 мес. назад #107005

  • Dmy
  • Dmy аватар
  • Вне сайта
  • Заблокирован
  • Сообщений: 1142
  • Спасибо получено: 2477
  • Даритель Стимкея2 место Программист RubyЗа 2 место на конкурсе маппингаУчительВетеранРазработчикОраторПаладинПоддержка Фонда
niseoth пишет:
Выход с карты и последующий вход не сохраняет позиции перемещённых эвентов, а вот сохранение и загрузка -- сохраняют.
Загрузка учитывает их только в том случае, если сохранение произошло в той же версии игры, что и загрузка.

Каждый раз, когда мы вносим какое-то изменение в игру, Мейкер увеличивает внутренний номер версии ($data_system.version_id). При сохранении Мейкер записывает (кроме всего прочего) номер версии проекта, в котором делалось сохранение. При загрузке он проверяет, совпадает ли этот номер версии с текущей версией. Если совпадает — берутся события из сохранения. Если не совпадает — берутся события из карты. За это отвечает функция reload_map_if_updated в DataManager.

niseoth пишет:
Насколько надёжна функция сохранения, если вся игра пройдёт на одной карте?
Достаточно надёжна, если вы не будете менять свой проект, т.к. все сохранения и загрузки будут в одной и той же версии.

За сохранение отвечает функция make_save_contents из стандартного скрипта DataManager, она сохраняет большую часть вещей. Вот код этой функции:
def self.make_save_contents
    contents = {}
    contents[:system]        = $game_system
    contents[:timer]         = $game_timer
    contents[:message]       = $game_message
    contents[:switches]      = $game_switches
    contents[:variables]     = $game_variables
    contents[:self_switches] = $game_self_switches
    contents[:actors]        = $game_actors
    contents[:party]         = $game_party
    contents[:troop]         = $game_troop
    contents[:map]           = $game_map
    contents[:player]        = $game_player
    contents
  end

Проблемы могут возникнуть с данными, добавляемыми через скрипты. Если скрипт должен сохранять какие-то свои данные в сохранении, об этом надо позаботиться при создании скрипта. Гарантии, что авторы скриптов об этом позаботились, нет: нужно проверять каждый скрипт отдельно.

niseoth пишет:
Например, сохраняется ли выполняемая строка в параллельном эвенте и локальные свитчи эвентов? Заменённые эвентом тайлсет и бэкграунд?
Да, сохраняется. Параллельные события хранятся в $game_map в свойствах @events и @common_events. Изменённый тайлсет хранится в $game_map в свойстве @tileset_id. (Но если версия изменилась, то сохранённый $game_map не учитывается: карта загружается заново, а с ней изменённый тайлсет и строки в параллельных событиях.)

Локальные переключатели хранятся в $game_self_switches, и они сохраняются всегда, даже если версия проекта изменилась. Кстати, они и при переходе на другую карту сохраняются.
Последнее редактирование: 5 года 4 мес. назад от Dmy.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Cabbit, niseoth
Время создания страницы: 0.215 секунд