Skip to content

商店类型

AIOShop 支持两种主要的商店类型:普通商店和随机商店。

普通商店

普通商店是最基础的商店类型,所有商品固定显示,适合用于:

  • 杂货铺
  • 材料商店
  • 工具商店
  • 任何需要固定商品列表的场景

配置示例

yaml
# shops/general-store.yml
display-name: "&2&l杂货铺"
description:
  - "&7日常生活用品商店"

gui-template: "general-store"

items:
  bread:
    display-name: "&f新鲜面包"
    buy-price:
      amount: 5.0
      currency: "VAULT"
    buy-rewards:
      self:
        type: "ITEM"
        item: "bread"
        amount: 1
    sell-item-matcher:
      material: "bread"
    sell-rewards:
      main:
        type: "CURRENCY"
        amount: 2.0
        currencyType: "VAULT"

随机商店

随机商店的商品会根据配置随机生成,增加游戏趣味性。支持两种随机模式:

ITEM_BY_ITEM 模式

逐个挑选商品,根据每个商品的稀有度权重随机选择。

yaml
random-generation:
  enabled: true
  generation-mode: "ITEM_BY_ITEM"
  period: "PERSONAL_DAILY"
  count: 8
  allow-duplicates: false
  manual-refresh-enabled: true

特点

  • 根据商品的稀有度权重逐个选择
  • count 指定生成的商品数量
  • allow-duplicates 控制是否允许重复商品

RARITY_FIRST 模式

先按稀有度分配名额,再从对应稀有度的商品池中随机选择。

yaml
random-generation:
  enabled: true
  generation-mode: "RARITY_FIRST"
  period: "PERSONAL_WEEKLY"
  rarity-counts:
    普通: 4
    稀有: 2
    史诗: 1
    传说: 1
  manual-refresh-enabled: true

特点

  • 精确控制每种稀有度的商品数量
  • 更容易平衡商品分布
  • 适合需要固定稀有度比例的场景

刷新周期

周期说明
PERSONAL_DAILY每个玩家每日独立刷新
PERSONAL_WEEKLY每个玩家每周独立刷新
GLOBAL_DAILY全服每日统一刷新
GLOBAL_WEEKLY全服每周统一刷新

手动刷新

启用 manual-refresh-enabled: true 后,玩家可以消耗刷新点数手动刷新商店。

刷新点数管理

bash
# 查询玩家刷新点数
/shop refreshpoints <> <商店ID>

# 设置玩家刷新点数
/shop refreshpoints <> <商店ID> <>

稀有度系统

稀有度定义在 rarities.yml 中:

yaml
rarities:
  普通:
    chance: 0.5    # 50% 基础概率
  稀有:
    chance: 0.3    # 30% 基础概率
  史诗:
    chance: 0.15   # 15% 基础概率
  传说:
    chance: 0.05   # 5% 基础概率

商品通过 rarity 字段引用稀有度:

yaml
items:
  diamond_sword:
    rarity: "史诗"
    # ...

商店对比

特性普通商店随机商店
商品固定
随机生成
稀有度系统
刷新机制
配置复杂度
适用场景基础交易抽奖/探索

基于 CC0 1.0 许可发布