table newSaveData = onSaveGame(table saveData)
Срабатывает при сохранении игры, предназначено только для одиночной игры.
Таблица saveData
хранит данные сохранения, принадлежащие скрипту, они загружаются из JSON файла по пути <Documents>\GTA San Andreas User Files\MoonLoader\save<id>.json
,
где <Documents>
– это папка документов пользователя, а <id>
– номер сохранения от 1 до 8.
Принадлежность данных сохранения определяется названием скрипта, которое задаётся директивой script_name, либо именем файла, если название не задано.
Значение saveData
будет равно nil
, если данные сохранения отсутствуют.
Событие принимает возвращаемое значение – таблицу, в которой хранятся новые данные сохранения, и если функция вернёт таблицу, то файл сохранения будет перезаписан (или создан) с новыми данными.
Файл сохранения не будет перезаписан, если из события onSaveGame
не было возвращено значение ни в одном из скриптов.
table saveData
данные сохранения
table newSaveData
новые данные сохранения
Счётчик сохранений:
function onSaveGame(save) -- создаём новую таблицу, если значение save отсутствует -- этот фрагмент является компактным аналогом кода -- if save then save = save else save = {} end save = save or {} if save.save_counter then -- если в сохранении уже присутствует значение -- то увеличиваем счётчик на единицу save.save_counter = save.save_counter + 1 else -- если отсутствует -- задаём единицу save.save_counter = 1 end -- 'return save' запишет новые данные сохранения в файл return save end
Другой пример использования в виде полноценного скрипта: CollectVehicles