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