(это псевдокод, который нужно будет адаптировать под синтаксис Fusion):
// Глобальные переменные для хранения данных о достижениях (можно использовать массив)
Global Number Achievement1 = 0;
Global Number Achievement2 = 0;
// ... и т.д.
// Функция для сохранения данных о достижениях (адаптируйте под Fusion)
Function SaveAchievements(PlayerID)
SaveData("Achievement1", Achievement1, PlayerID);
SaveData("Achievement2", Achievement2, PlayerID);
// ... и т.д.
End Function
// Функция для загрузки данных о достижениях
Function LoadAchievements(PlayerID)
Achievement1 = LoadData("Achievement1", PlayerID, 0); // 0 - значение по умолчанию
Achievement2 = LoadData("Achievement2", PlayerID, 0);
// ... и т.д.
End Function
// Событие: Убийство первого врага
On Enemy Death
If Achievement1 == 0
Achievement1 = 1;
// Создать объект "Ачивка получена!" с описанием Achievement1
CreateObject("AchievementPopup", x, y); // x, y - координаты
SaveAchievements(PlayerID); // Сохраняем данные об ачивке
EndIf
End Event
// Событие: Достижение 10 уровня
On PlayerLevelUp
If PlayerLevel >= 10 And Achievement2 == 0
Achievement2 = 1;
// Создать объект "Ачивка получена!" с описанием Achievement2
CreateObject("AchievementPopup", x, y);
SaveAchievements(PlayerID);
EndIf
End Event
// Событие: Загрузка игры
On StartOfGame
LoadAchievements(PlayerID);
// Отобразить уже полученные ачивки (если Achievement1 = 1 или Achievement2 = 1)
End Event
// Объект "AchievementPopup":
// - Имеет спрайт с изображением ачивки
// - Спрайт удаляется через несколько секунд с помощью таймера или анимации