Онлайн-справочник по самым часто задаваемым вопросам из темы "Как сделать?" на форуме QSP.su

17.4. Как написать действие, которое при каждом клике сохраняло бы игру в файлы "1.sav" и "2.sav" поочерёдно?

В: Как написать действие, которое при каждом клике сохраняло бы игру в файлы "1.sav" и "2.sav" поочерёдно?

О:

Это решается довольно просто, с помощью переменной-счётчика:

! где-то заранее устанавливаем переменную счётчик
savecount=1

! в нужном месте пишем действие
act "Сохранить":
    if savecount=1:
        savecount=2
        savegame "1.sav"
    else
        savecount=1
        savegame "2.sav"
    end
end

В данном случае в файле сохранения "1.sav" значение переменной-счётчика будет равно 2, а в файле "2.sav" — 1. Это позволит при загрузке игры из одного файла нажатием действия "Сохранить" записать сохранение в следующий файл.

Например, мы нажали действие "Сохранить" и сохранили игру в файл "1.sav", после чего нажатие на действие "Сохранить" должно записывать состояние в файл "2.sav". Не важно, нажмём мы действие ещё раз, или нет, при загрузке состояния из файла "1.sav" мы снова получим ситуацию, когда действие "Сохранить" должно будет записать очередное состояние в файл "2.sav".

Чтобы загружать игру из последнего сохранения, нам нужно такое действие:

act "Загрузить последнее":
    if savecount=1:
        opengame "2.sav"
    else
        opengame "1.sav"
    end
end

В этом случае, если мы сохранили состояние в файл "1.sav", то даже если мы загрузим состояние из этого файла, в следующий раз при выборе "Загрузить последнее" мы вновь загрузим состояние из "1.sav".

Однако если нам нужно загружать состояния из предыдущего файла, нужно создать такое действие:

act "Загрузить предыдущее":
    opengame "<<savecount>>.save"
end