Stamina Attributes
Небольшой API, добавляющий систему выносливости, управляемую атрибутами сущностей.
- Загрузчики
- Fabric
- Скачиваний на Modrinth
- 39,8 тыс.
- Подписчиков на Modrinth
- 26
- версий
- 28
- Обновлён
- 16 апреля 202616 апр.
- Опубликован
- в 2024
Коротко о моде
Нужен и в игре, и на сервере
Атрибуты выносливости
Этот API добавляет систему выносливости, управляемую атрибутами сущностей.
Реализация по умолчанию
LivingEntities могут иметь до staminaattributes:max_stamina единиц выносливости. Выносливость восстанавливается на staminaattributes:stamina_regeneration каждые staminaattributes:stamina_tick_threshold тиков.
Когда выносливость снижается, восстановление останавливается на staminaattributes:stamina_regeneration_delay_threshold тиков.
Когда выносливость <= 0, восстановление останавливается на staminaattributes:depleted_stamina_regeneration_delay_threshold тиков.
staminaattributes:reserved_stamina описывает процент от максимальной выносливости, который в данный момент недоступен.
staminaattributes:item_use_stamina_cost — это количество выносливости, которое снижается при использовании предмета со стоимостью выносливости. Есть два способа задать предмету стоимость выносливости:
- Предметы в теге предметов "staminaattributes:using_costs_stamina" снижают выносливость на staminaattributes:item_use_stamina_cost при однократном использовании. Когда выносливость < 0, действие использования не выполняется. В этом случае предмет получает перезарядку, настроенную в конфиге сервера.
- Предметы в теге предметов "staminaattributes:continuous_using_costs_stamina" снижают выносливость на staminaattributes:item_use_stamina_cost каждый тик, пока они используются. Когда выносливость < 0, использование отменяется. В этом случае предмет получает перезарядку, настроенную в конфиге сервера.
Различные атрибуты staminaattributes:*_tick_stamina_cost описывают стоимость выносливости для соответствующей активности. Эта стоимость применяется каждый тик (20 раз в секунду). Сюда входят следующие активности:
- спринт
- приседание
- ходьба
- плавание
- ходьба под водой
- ходьба в воде
- лазание
Различные атрибуты staminaattributes:*_action_stamina_cost описывают стоимость выносливости для соответствующих действий. Эта стоимость применяется один раз каждый раз, когда действие выполняется. Сюда входят следующие действия:
- прыжок
- прыжок в спринте
- блокирование атаки
- атака
- разрушение блока
Несколько активностей и действий можно настроить так, чтобы они требовали выносливость. Если выносливость равна 0 или ниже, их нельзя выполнить. Сюда входят:
- прыжок
- спринт
- плавание
- атака
- разрушение блока
- атака
- блокирование атаки
Блоки, которые можно сломать мгновенно рукой (блоки со значением "destroyTime" равным 0), можно исключить из требования выносливости.
Истощение
Если у игрока 0 или меньше выносливости, он истощён, что означает, что на него накладывается эффект состояния. Этот эффект состояния определяется в конфиге сервера.
Эту функцию можно включить в конфиге сервера, но по умолчанию она отключена.
Значения атрибутов по умолчанию
- staminaattributes:max_stamina: 10 (10 для игроков)
- staminaattributes:stamina_regeneration: 0 (1 для игроков)
- staminaattributes:stamina_tick_threshold: 20
- staminaattributes:stamina_regeneration_delay_threshold: 20
- staminaattributes:depleted_stamina_regeneration_delay_threshold: 60
- staminaattributes:reserved_stamina: 0
- staminaattributes:item_use_stamina_cost: 0 (0.05 для игроков)
- staminaattributes:sprinting_tick_stamina_cost: 0 (0.05 для игроков)
- staminaattributes:sneaking_tick_stamina_cost: 0 (0.05 для игроков)
- staminaattributes:walking_tick_stamina_cost: 0
- staminaattributes:swimming_tick_stamina_cost: 0 (0.05 для игроков)
- staminaattributes:walking_underwater_tick_stamina_cost: 0 (0.05 для игроков)
- staminaattributes:walking_in_water_tick_stamina_cost: 0 (0.05 для игроков)
- staminaattributes:climbing_tick_stamina_cost: 0 (0.05 для игроков)
- staminaattributes:jumping_action_stamina_cost: 0 (1 для игроков)
- staminaattributes:sprint_jumping_action_stamina_cost: 0 (1 для игроков)
- staminaattributes:attack_blocking_action_stamina_cost: 0 (1 для игроков)
- staminaattributes:attacking_action_stamina_cost: 0 (1 для игроков)
- staminaattributes:block_breaking_action_stamina_cost: 0 (1 для игроков)
Все значения по умолчанию для игроков можно задать в конфиге сервера.
Теги предметов по умолчанию
"staminaattributes:using_costs_stamina":
{
"values": [
"minecraft:snowball"
]
}"staminaattributes:continuous_using_costs_stamina":
{
"values": [
"minecraft:bow",
"minecraft:crossbow",
"minecraft:shield"
]
}Настройка
Клиентский конфиг позволяет настроить элемент HUD.
Использование системы выносливости
Java
Приведение "LivingEntity" к интерфейсу "StaminaUsingEntity" даёт доступ ко всем нужным методам.
Датапаки
Stamina Attributes реализует несколько методов на основе данных для взаимодействия с текущим значением выносливости сущности.
- эффект зачарования "staminaattributes:add_stamina" позволяет добавить определённое количество к текущей выносливости
- подпредикат сущности "staminaattributes:stamina_using_entity" срабатывает, когда текущая выносливость сущности попадает в заданный диапазон
Пример
Это зачарование уменьшает выносливость атакующего на 2, пока у атакующего есть хотя бы 5 выносливости:
{
"anvil_cost": 1,
"description": {
"translate": "enchantment.staminaattributes.test"
},
"effects": {
"minecraft:post_attack": [
{
"affected": "attacker",
"effect": {
"type": "staminaattributes:add_stamina",
"amount": {
"type": "minecraft:linear",
"base": -2.0,
"per_level_above_first": -2.0
}
},
"enchanted": "attacker",
"requirements": {
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"type_specific": {
"type": "staminaattributes:stamina_using_entity",
"stamina_amount": {
"min": 5.0
}
}
}
}
}
]
},
"max_cost": {
"base": 25,
"per_level_above_first": 8
},
"max_level": 1,
"min_cost": {
"base": 5,
"per_level_above_first": 8
},
"slots": [
"hand"
],
"supported_items": "#minecraft:swords",
"weight": 5
}Частые вопросы
Как установить Stamina Attributes?
Установите Fabric под свою версию Minecraft, скачайте Stamina Attributes под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Stamina Attributes?
У Stamina Attributes есть сборки для Minecraft 1.20.1, 1.21–1.21.1, 1.21.10–26.1.2.
Нужен ли Stamina Attributes на сервере?
Нужен и в игре, и на сервере