随机商店
创建每个玩家独立的随机刷新商店
随机商店概述
随机商店从商品池中随机选择商品展示给玩家。每个玩家看到的商品可以不同,商品会按配置的周期刷新。
两种生成模式
| 模式 | 说明 | 适用场景 |
|---|---|---|
ITEM_BY_ITEM |
根据每个商品的稀有度权重逐个挑选 | 传统随机商店,多样化选择 |
BY_RARITY |
先随机选择稀有度主题,再从该稀有度中挑选商品 | 主题商店,如"今日全是史诗" |
稀有度配置
稀有度定义在 plugins/AIOShop/rarities.yml 中:
# rarities.yml
rarities:
普通:
chance: 0.5 # 50% 权重
稀有:
chance: 0.3 # 30% 权重
史诗:
chance: 0.15 # 15% 权重
传说:
chance: 0.05 # 5% 权重
chance 值不需要加起来等于 1,插件会自动计算权重比例。随机商店配置
完整示例
# shops/random-shop.yml
display-name: "&e&l每日随机商店"
description:
- "&7每天刷新不同商品"
- "&7快来看看今天有什么!"
gui-template: "random-shop"
# 随机生成配置
random-generation:
enabled: true
generation-mode: "ITEM_BY_ITEM" # 或 BY_RARITY
period: "PERSONAL_DAILY" # 刷新周期
count: 8 # 每次展示商品数量
allow-duplicates: false # 是否允许重复
manual-refresh-enabled: true # 是否允许手动刷新
# 商品池
items:
common_bread:
item-id: "bread"
rarity: "普通"
display-name: "&f新鲜面包"
buy-price:
amount: 5
currency: "VAULT"
buy-rewards:
self:
type: "ITEM"
item: "bread"
amount: 1
limit-type: "PERSONAL_DAILY"
limit-amount-range: "10-20"
enabled: true
rare_golden_apple:
item-id: "golden_apple"
rarity: "稀有"
display-name: "&6&l金苹果"
buy-price:
amount: 100
currency: "VAULT"
buy-rewards:
self:
type: "ITEM"
item: "golden_apple"
amount: 1
limit-type: "PERSONAL_DAILY"
limit-amount: 3
enabled: true
legendary_nether_star:
item-id: "nether_star"
rarity: "传说"
display-name: "&e&l下界之星"
buy-price:
amount: 2000
currency: "VAULT"
buy-rewards:
self:
type: "ITEM"
item: "nether_star"
amount: 1
limit-type: "PERSONAL_DAILY"
limit-amount: 1
enabled: true
刷新周期
period 配置商店内容的刷新频率:
| 周期 | 说明 |
|---|---|
PERSONAL_DAILY | 每个玩家每天刷新 |
PERSONAL_WEEKLY | 每个玩家每周刷新 |
PERSONAL_MONTHLY | 每个玩家每月刷新 |
GLOBAL_DAILY | 全服每天统一刷新 |
GLOBAL_WEEKLY | 全服每周统一刷新 |
GLOBAL_MONTHLY | 全服每月统一刷新 |
手动刷新
当 manual-refresh-enabled: true 时,玩家可以在商店界面中手动刷新商品。
刷新点数
手动刷新消耗刷新点数,管理员可通过命令管理:
# 查询玩家刷新点数
/as refreshpoints <玩家名> <商店ID>
# 设置玩家刷新点数
/as refreshpoints <玩家名> <商店ID> 5
管理员命令
/as refresh <玩家名> <商店ID>
强制刷新指定玩家的随机商店内容
/as refreshshop <商店ID>
全服刷新随机商店,所有在线玩家会收到通知
生成模式详解
ITEM_BY_ITEM 模式
每次从商品池中根据稀有度权重随机选择一个商品,重复直到达到 count 数量。
- 商品被选中的概率 = 该商品稀有度权重 / 所有商品稀有度权重之和
allow-duplicates: false时,已选中的商品不会再次出现- 适合提供多样化的商品选择
BY_RARITY 模式
先根据权重随机选择一个稀有度等级,然后从该稀有度的商品中随机选择。
- 可能出现"今日全是史诗商品"的情况
- 适合主题商店,增加惊喜感