Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

ru:guide:saving [2016/09/20 13:51] (текущий)
Строка 1: Строка 1:
 +==== Краткая версия ====
  
 +Salet сохраняет все переменные,​ что вы положили в объект ''​%%salet.character%%''​.
 +
 +Вы можете использовать любые переменные,​ но функции не будут сохраняться.
 +
 +В случае проблемы вы можете использовать ''​%%salet.init()%%'',​ чтобы проверить,​ что объект ''​%%salet.character%%''​ составлен правильно.
 +
 +==== Автосохранение ====
 +
 +Salet по умолчанию включает **автосохранение**.
 +
 +Чтобы выключить его, поставьте ''​%%salet.autosave = false%%''​ где-нибудь в начале игры.
 +
 +Также Salet использует автозагрузку,​ т.е. когда игрок открывает страницу с игрой, то игра продолжается с того же места. Если вы хотите отключить это, выставите ''​%%salet.autoload = false%%''​ где-нибудь до вызова ''​%%salet.beginGame()%%''​.
 +
 +Отдельных настроек для каждого действия в комнате нет. Каждый вызов каждого действия сохраняется,​ если в комнате разрешено сохранение,​ и не сохраняется,​ если запрещено.
 +
 +==== Ручная загрузка игры ====
 +
 +Чтобы загрузить игру вручную,​ напишите это:
 +
 +<​code>​
 +savefile = salet.getSave()
 +salet.loadGame(savefile)
 +</​code>​
 +Функции ''​%%saveGame%%''​ и ''​%%getSave%%''​ принимают параметр ''​%%slot%%'',​ чтобы вы могли сделать несколько слотов сохранений.
 +
 +**ВАЖНО!!** Вы **должны** запретить сохранение в этой комнате через ''​%%canSave:​ false%%''​. Даже неважно,​ где вы пытаетесь вызвать ''​%%loadGame%%''​ - при входе в комнату (специальные свойства ''​%%enter%%'',​ ''​%%exit%%'',​ ''​%%before%%'',​ ''​%%after%%''​) или в одном из действий. Если эта комната или это действие попадёт в сохранение и вы попробуете загрузить игру, то игра войдёт в бесконечный цикл и зависнет вместе с браузером. Поэтому объявите комнату,​ из которой вы загружаете игру, несохраняемой.
 +
 +==== Долгое описание ====
 +
 +Salet сохраняет путь игрока как текст (если точнее,​ то сериализованный JSON).
 +
 +Всё, что находится внутри ''​%%salet.character%%'',​ конвертируется в текст и кидается в сохранение. Всё что не может быть представлено как текст (например,​ функции),​ не может быть сохранено.
 +
 +Сохранение помещается в локальное хранилище браузера игрока. Обычный размер локального хранилища - это 5 мегабайт на сайт. Это на весь сайт, не на одну игру. Это **НЕ** определённое число, у каждого браузера может быть настроено разное значение.
 +
 +Если один вебсайт хранит 10 игр на Salet, то все их сохранения делят одно хранилище (если он сыграет во все десять игр). Если хранилище заполнится,​ то ничего больше не сохранится. Единственный способ очистить хранилище - это удалить какие-нибудь данные - то есть, другие сохранения (может быть, из других игр). А хорошие новости таковы,​ что большинству игр не понадобится больше дюжины переменных,​ так что 5 мегабайт - это много.
 +
 +Игрок очищает локальное хранилище?​ Сохранение стёрто.
 +
 +Вы перенесли вашу игру на другой сайт? Никакого способа переместить сохранения вместе с ней.
 +
 +После того, как игра запущена,​ Salet запускает функцию ''​%%salet.init%%''​. В ней вы можете проверить состояние игры.
 +
 +После загрузки игрок заново заходит в текущую комнату. Если он перезапустит игру несколько раз, то в истории переходов текущая комната запишется столько же раз. Это нужно иметь в виду, если вы используете функцию ''​%%salet.back%%''​.
  • ru/guide/saving.txt
  • Последние изменения: 2016/09/20 13:51
  • (внешнее изменение)