boltСпособности

Способности — стандартный способ реализации действий игрока с помощью:

  • Единообразного UI кнопок, который хорошо работает на мобильных устройствах и ПК.

  • Временами восстановления

  • Необязательного прицеливания (тап/перетаскивание на мобильных, прицел мышью на ПК)

Способности являются для каждого игрока. Когда игрок присоединяется, All Out создаёт экземпляр каждого типа способности и сохраняет его в player.abilities.

Быстрый старт (отрисовка кнопок способностей)

Отрисуйте кнопки способностей в Player.ao_late_update, внутри is_local_or_server():

Player :: class : Player_Base {
    ao_late_update :: method(dt: float) {
        if this->is_local_or_server() {
            draw_ability_button(this, Shoot_Ability, 0);  // большая основная кнопка
            draw_ability_button(this, Dodge_Roll, 1);     // маленькая кнопка
        }
    }
}
circle-info

Индексы кнопок соответствуют фиксированным позициям на экране. Индекс 0 — большая основная кнопка; индексы 1-5 — это меньшие кнопки вокруг неё.

Справочник по API способностей

Создание способности (обычный клик)

Удерживаемые способности (активны пока удерживается)

Для способностей, которые активны при удержании (рывок, щит, луч), используйте Ability_Utilities.update_holding_ability чтобы это работало как на ПК, так и на мобильных.

Если вы хотите поведение «всегда прицеливания» (прицел мышью + клик для выстрела на ПК, нажать-перетащить-отпустить на мобильных), используйте Ability_Utilities.full_update_aimed_ability:

Если вы хотите «клик для входа в режим прицеливания» (ПК переключает режим прицеливания; правый клик отменяет), используйте Ability_Utilities.full_update_targeted_aimed_ability:

Ограничения способностей на уровне игры (необязательно)

Реализуйте ao_can_use_ability в вашем Player классе, чтобы применять глобальные правила (мертвые игроки не могут использовать способности, отключено во время катсцен и т.д.).

Лучшие практики

  • Всегда отрисовывайте кнопки в ao_late_update и защищайте вызов с помощью is_local_or_server()

  • Установите current_cooldown когда вы активируете (иначе это можно будет спамить)

  • Используйте Ability_Utilities утилиты для удержания/прицеливания, чтобы мобильные устройства и ПК вели себя одинаково

  • Разместите глобальные правила в Player.ao_can_use_ability, а не дублируйте для каждой способности

Последнее обновление