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

Habilidades

Las habilidades son la forma estándar de implementar las acciones del jugador con:

  • Una interfaz de botones coherente que funciona bien en móvil y en PC.

  • Tiempos de reutilización

  • Apuntado opcional (tocar/arrastrar en móvil, apuntar con el ratón en PC)

Las habilidades son por jugador. Cuando un jugador se une, All Out crea una instancia de cada tipo de habilidad y la almacena en player.abilities.

Inicio rápido (dibujar botones de habilidad)

Dibuja los botones de habilidad en Player.ao_late_update, dentro de 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);  // botón principal grande
            draw_ability_button(this, Dodge_Roll, 1);     // botón pequeño
        }
    }
}

Los índices de los botones se asignan a posiciones fijas en pantalla. El índice 0 es el botón principal grande; los índices 1-5 son botones más pequeños alrededor de él.

Referencia de la API de habilidades

Crear una habilidad (clic básico)

Habilidades mantenidas (activas mientras se mantenga pulsado)

Para habilidades que están activas mientras se mantienen pulsadas (sprint, escudo, rayo), usa Ability_Utilities.update_holding_ability para que funcione tanto en PC como en móvil.

Habilidades con apuntado (arrastrar para apuntar en móvil)

Si quieres un comportamiento de “apuntar siempre” (apuntar con el ratón + clic para disparar en PC, pulsar-arrastrar-soltar en móvil), usa Ability_Utilities.full_update_aimed_ability:

Si quieres un comportamiento de “clic para entrar en modo apuntado” (en PC alterna el modo apuntado; clic derecho cancela), usa Ability_Utilities.full_update_targeted_aimed_ability:

Restricciones de habilidades a nivel global (opcional)

Implementa ao_can_use_ability en tu Player clase para imponer reglas globales (los jugadores muertos no pueden usar habilidades, deshabilitadas durante las cinemáticas, etc.).

Buenas prácticas

  • Dibuja siempre los botones en ao_late_update y protege con is_local_or_server()

  • Establece current_cooldown cuando la actives (de lo contrario se puede spamear)

  • Usa Ability_Utilities ayudantes para mantener/apuntar para que móvil + PC se comporten de forma coherente

  • Pon las reglas globales en Player.ao_can_use_ability, no duplicadas por cada habilidad

Última actualización