For the complete documentation index, see llms.txt. This page is also available as Markdown.

Способности

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

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

  • Кулдауны

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

Способности — это для каждого игрока. Когда игрок присоединяется, 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);     // маленькая кнопка
        }
    }
}

Индексы кнопок сопоставляются с фиксированными позициями на экране. Индекс 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, а не дублируйте их для каждой способности

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