coins经济系统

经济 API 让你可以创建自定义货币(金币、宝石、经验值等),并自动为每个玩家在不同会话之间持久保存。

  • 每种货币都按 每位玩家

  • 余额会 自动持久化 跨会话保存

  • 余额可在创作者门户中查看/编辑(见 编辑/查看玩家数据)

经济 API 参考

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);
}

注册货币(仅需一次)

在使用某个货币名称之前,先为它注册一个图标。

// 从你的 /res 文件夹中挑选一个图标
coin_icon := get_asset(Texture_Asset, "ui/coin.png");

Economy.register_currency("Coins", coin_icon);
Economy.register_currency("XP", coin_icon); // 示例(理想情况下使用不同的图标)
circle-info

货币名称只是字符串。请选择一个统一的名称并坚持使用它(例如 "Coins""coins").

读取玩家余额

发放货币(奖励)

使用 deposit_currency 每当玩家获得货币时。

花费货币(商店/升级)

始终检查 can_withdraw_currency 在扣除之前。

重置玩家的经济数据

如果你需要清除某个玩家的所有经济余额(例如,管理员重置按钮或游戏模式重置),你可以删除他们的经济保存数据:

circle-exclamation

经济系统 vs 保存

  • 使用 经济系统 用于“货币”(金币、宝石、XP、票券),当你希望自动持久化 + 可在门户中编辑时。

  • 使用 保存 用于其他所有内容(设置、任务状态、解锁列表、复杂的进度结构)。见 保存系统

最后更新于