bag-shoppingInventory

Resumen

All Out proporciona una API de inventario de jugador que te permite crear objetos, dárselos a los jugadores y permitir que los jugadores organicen, usen y suelten objetos en tu juego.

Hay tres conceptos principales:

  • Definiciones de objetos (Item_Definition): qué es un objeto es (nombre/icono/apilamiento + tus propios campos)

  • Instancias de objetos (Item_Instance): una pila real en el mundo/en un inventario

  • Inventarios (Inventory): un contenedor de ranuras que almacena instancias de objetos

Cada jugador tiene un inventario integrado en player.default_inventory.

Persistencia

Si quieres que los inventarios de los jugadores se guarden automáticamente entre sesiones de juego, habilita la casilla "Auto Save Player Inventory" en la sección Edit -> Game Settings del editor

Referencia de la API de inventario

Inicio rápido (registrar + dar un objeto)

Registra las definiciones de objetos una sola vez en ao_before_scene_load, luego crea instancias y muévelas al inventario de un jugador.

Mostrando la barra rápida

Para mostrar en pantalla la interfaz estándar de barra rápida del inventario, llama a Items.draw_hotbar dentro del ao_late_update método de tu Player. ¡Sin esto, el sistema de inventario funciona en segundo plano pero el jugador no lo verá!

circle-info

Items.draw_hotbar maneja por ti toda la UI de la barra rápida + el interruptor de mochila. Devuelve un Draw_Hotbar_Result con selected_item, selected_item_index, inventory_open, y dropped_item campos.

Comprobar si un jugador ya tiene un objeto

Un patrón común es dar un objeto solo si el jugador no tiene ya uno:

También puedes comprobar cuánto espacio queda para un tipo de objeto específico antes de crearlo:

Inventarios personalizados

Puedes crear inventarios que no estén ligados a un jugador, para cosas como:

  • Cofres / contenedores de almacenamiento

  • Equipos de peces/mobs

Para acceder a los objetos:

Objetos sueltos

Si quieres que los jugadores suelten objetos en el mundo (y que otros jugadores puedan recogerlos), usa el sistema de objetos sueltos:

Generar un objeto suelto

Animación de soltar + ajuste a la navmesh

Gestionar arrastrar y soltar desde la UI de la barra rápida

Si usas Items.draw_hotbar, los jugadores pueden arrastrar un objeto fuera de la UI para soltarlo. Dropped_Item.handle_dropped_item lo elimina del inventario y genera una entidad de objeto suelto.

circle-info

Los objetos sueltos desaparecen automáticamente con el tiempo (con una barra de advertencia). Mantener pulsado el botón de interactuar sobre un objeto reinicia su temporizador de desaparición.

circle-info

Puedes hacer que un objeto suelto sea exclusivo (solo visible/recogible por un jugador) usando dropped->set_exclusive(player).

Última actualización