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

Economy

Las API de economía te permiten crear monedas personalizadas (monedas, gemas, XP, etc.) y conservarlas automáticamente para cada jugador entre sesiones.

  • Cada divisa se almacena por jugador

  • Los saldos se persisten automáticamente entre sesiones

  • Los saldos se pueden ver/editar en el portal del creador (ver Editar/ver datos del jugador)

Referencia de la API de Economy

Economy :: struct {
    register_currency     :: proc(currency: string, icon: Texture_Asset);
    deposit_currency      :: proc(player: Player, currency: string, amount: s64);
    get_balance           :: proc(player: Player, currency: string) -> s64;
    can_withdraw_currency :: proc(player: Player, currency: string, amount: s64) -> bool;
    withdraw_currency     :: proc(player: Player, currency: string, amount: s64);
    delete_save_data      :: proc(player: Player);
}

Registro de una divisa (una sola vez)

Antes de usar un nombre de divisa, regístralo con un icono.

ao_before_scene_load :: proc() {
    // Elige un icono de tu carpeta /res
    coin_icon := get_asset(Texture_Asset, "ui/coin.png");

    Economy.register_currency("Monedas", coin_icon);
    Economy.register_currency("XP", coin_icon); // ejemplo (idealmente usa un icono diferente)
}

Los nombres de las divisas son solo cadenas. Elige un nombre coherente y manténlo siempre (por ejemplo "Monedas" vs "monedas").

Lectura del saldo de un jugador

Otorgar divisas (recompensas)

Usa deposit_currency cada vez que un jugador gana divisas.

Gastar divisas (tiendas/mejoras)

Comprueba siempre can_withdraw_currency antes de retirar. Los importes de depósito y retirada deben ser no negativos.

Tiendas integradas

Una tienda contiene categorías, y cada categoría contiene productos. Crea la tienda después de registrar sus divisas. Conserva sus manejadores en campos de toda la escena o en variables globales porque solo son válidos para la escena actual.

El controlador de compra debe otorgar el producto y devolver true. Si se devuelve false , se rechaza la compra.

Dibuja la tienda desde el código de la UI del jugador. Shop.draw devuelve true mientras la tienda permanezca abierta:

Shop.set_purchase_modifier puede cambiar el precio o el botón de un producto por jugador. Shop.set_custom_display puede reemplazar el dibujo de la tarjeta del producto. Ambas devoluciones de llamada usan el mismo patrón explícito de userdata que el controlador de compra.

Restablecer los datos de economía de un jugador

Si necesitas borrar todos los saldos de economía de un jugador (por ejemplo, un botón de restablecimiento de administrador o un reinicio del modo de juego), puedes eliminar sus datos guardados de economía:

Economy frente a Save

  • Usa Economy para "divisas" (monedas, gemas, XP, entradas) donde quieres persistencia automática + edición en el portal.

  • Usa Guardado para todo lo demás (configuración, estado de misiones, listas de desbloqueos, estructuras de progreso complejas). Ver Sistema de guardado

Última actualización