artomberus: @peter, я, наверное, не до конца понимаю порядок выполнения кода. Да, теперь я понял, что init не сработал бы, потому, что вызывается до загрузки из save. И вот есть функция start(load) в начале игры. Я ее опробовал и оно работает: Если загрузились - выполняем одни команды, иначе - выполняем другие команды. Я пускал проигрывание звуков и все корректно играло - после загрузки один звук, а после старта игры с начала - другой. Это практически ключ к решению задачи, но в моей голове бардак, и когда пишу код для смены фона, он не работает. bg.png - изображение с подложкой для инвентаря bg_good.png - изображение без подложки global { firstlaunch = true; - переменная, которая отвечает за первый запуск. После первой же смены фона она должна смениться на false, и так и оставаться. } function start(load) if ( (load) and (here() == 'main') ) or ( (firstlaunch) and (here() == 'main') ) then theme.gfx.bg 'gfx/bg_good.png' firstlaunch = false else theme.gfx.bg 'gfx/bg.png' return end end -- Если мы загрузились, и мы на главной (или это первый запуск и мы на главной) - рисуем фон без подложки, - иначе - рисуем фон с подложкой. Сейчас у меня три места, где я указываю, что надо менять фон, и всюду одинаковая логика: функция start, Первоначальная комната (в ней подложка не должна показываться): room { forcedsc = true; nam = 'main'; noinv = true; title = 'Вступление'; pic = 'gfx/0.png'; enter = function() snd.music 'mus/Beginning.ogg' if ( (load) and (here() == 'main') ) or ( (firstlaunch) and (here() == 'main') ) then theme.gfx.bg 'gfx/bg_good.png' firstlaunch = false else theme.gfx.bg 'gfx/bg.png' return end end; Следующая комната - в ней подложка должна показываться: room { nam = "start"; title = 'Развилка'; pic = 'gfx/1.png'; enter = function() snd.music 'mus/Atlantis.ogg' if ( (load) and (here() == 'main') ) or ( (firstlaunch) and (here() == 'main') ) then theme.gfx.bg 'gfx/bg_good.png' firstlaunch = false else theme.gfx.bg 'gfx/bg.png' return end end; И даже такой избыточный код не работает... Когда пишу код, который не касается загрузки-сохранения - то все стройно и понятно - объекты и их свойства, комнаты и их свойства, переходы между ними. Там мне не приходится ничего сохранять самостоятельно. А здесь уже что-то, чего я просто не вижу или не замечаю... Если всюду одинаковая логика, но она не срабатывает, значит или записываю неправильно, или логику построил неверно.
Ссылка:
http://instead-games.ru/forum/index.php?p=/discussion/comment/12826/#Comment_12826