Мод «Achievement Mod» для tModLoader добавляет возможность разблокировать достижения, как в ванильной версии Terraria, и поддерживает интеграцию достижений из других модов.
Описание Achievement Mod
Основные функции
Achievement Mod предлагает систему достижений, совместимую с ванильными достижениями и другими модификациями, что позволяет более полно отслеживать игровой прогресс и добавлять уникальные цели от других авторов. Основные возможности включают:
- Разблокировка достижений: поддерживает ванильные достижения и достижения, добавляемые другими модами.
- Гибкость настроек: можно создавать отдельные достижения для каждого игрока.
- Управление достижениями через команды:
/achievement clear
— сброс всех достижений./achievement grant [название достижения]
— получение определенного достижения./achievement revoke [название достижения]
— отмена достижения./achievement unlockvanilla
— разблокировка всех ванильных достижений.
Сохранение прогресса
Прогресс достижений сохраняется в JSON-файле в папке «AchievementData», расположенной рядом с папками игроков и миров. Это позволяет продолжить прохождение даже при смене устройства.
Поддержка для разработчиков
Achievement Mod предоставляет простой API для добавления собственных достижений. Ключевые параметры для создания достижения:
- Название и категория достижения
- Путь к текстуре (размер 128×64): иконка для отображения состояния разблокировки/блокировки достижения.
- Кастомная рамка (опционально): текстура 72×72 для уникальной рамки достижения.
- Прогресс-бар и карточка достижения: можно отобразить прогресс выполнения условия и управлять порядком отображения.
Пример добавления достижения:
csharpКопировать кодmod.Call("AddAchievement", this, "AchievementName", AchievementCategory.Collector, "YourMod/Assets/Textures/Achievement", null, false, false, 2.5f, new string[] { "Collect_" + ItemID.RodofDiscord });
Типы условий для достижения
Achievement Mod поддерживает следующие условия для достижения цели:
- Сбор предметов:
"Collect_" + [ID предмета]
- Крафт предметов:
"Craft_" + [ID предмета]
- Добыча блоков:
"Mine_" + [ID блока]
- Уничтожение НПС:
"Kill_" + [ID NPC]
- Особые события:
"Event_ExampleEvent"
Также можно задать условия по увеличению значений (например, собрать 100 единиц ресурса).
Дополнительные команды
Команда /achievement debuglist
позволяет вывести список всех доступных достижений (включая из модов) в лог-файл клиента для отладки и настройки.