轮换商店
轮换商店每到一个周期,就从商品池按权重随机抽几件,放到指定的轮换格。适合每日特惠、每周限定、黑市商人。

设定
shops/daily.yml
title: '&8每日特惠'
icon:
material: CLOCK
name: '&e每日特惠'
type: rotating # 轮换商店
rotation:
period: daily 04:00 # 每天 04:00 换一批
slots: [11, 12, 13, 14, 15] # 轮换格:抽几件 = 有几格
per-player: false # true = 每位玩家抽到的不一样
rows: 3
items:
# 没有 slot 的商品 = 商品池
golden_apple:
item: GOLDEN_APPLE
buy: 300
weight: 10 # 权重:越大越容易抽到(默认 10)
limit:
buy: {amount: 3, reset: 'daily 04:00'}
elytra:
item: ELYTRA
buy: [20000 money, 200 points]
weight: 1 # 稀有
stock: {amount: 3, restock: 'daily 04:00'}
# 有 slot 的商品固定不动,每天都在
name_tag:
slot: 22
item: NAME_TAG
buy: 120
| 键 | 默认 | 说明 |
|---|---|---|
type | normal | 写 rotating(或 轮换)才会轮换 |
rotation.period | daily | 轮换周期,写法同 重置周期:daily 04:00、weekly MONDAY、6h、30m…… |
rotation.slots | 轮换格位置(只在第 1 页);有几格就抽几件 | |
rotation.per-player | false | true = 每位玩家抽到的商品各自不同 |
商品的 weight | 10 | 抽中权重。权重 10 的商品被抽中的机会是权重 1 的 10 倍 |
规则
- 商品池 = 这个商店里没有
slot的商品;有slot的商品是固定商品,一直都在。 - 同一批里不会重复;商品池比轮换格少时,多出的格子显示「等待轮换」。
- 固定商品也可以放在轮换格上:那一格保持固定商品,这一批只抽剩下空着的轮换格数量(1.0.1 起)。
- 不在这一批里的商品不能买也不能卖(包括出售 箱与一键卖出),点击会提示「这件商品已经轮换下架了」。
- 商店底部的余额按钮会多一行「下次轮换:X小时Y分」;云界面的商店标题下方也会显示轮换倒数。
- 限购的
reset建议和轮换周期一样(例如都写daily 04:00),换一批的同时重置限购。
所有子服抽到一样的
每一批是用「商店 ID + 周期」当作随机种子抽出来的:
- 同一个周期里,每个子服、每次重启、每次
/cs reload抽到的都一样,不需要存任何资料、不需要定时器。 per-player: true时种子再加上玩家 UUID,每个人一批,但同一个人在任何子服看到的都一样。- 修改商品池(新增、删除、改权重)或轮换格后,这一期会照新的商品池重新抽。
在管理介面设定
游戏内管理介面 的商店设定:
- 点「类型」切换一般 / 轮换(切到轮换时默认
daily、轮换格 10 – 16)。 - 「轮换设定」左键改周期、右键改轮换格(聊天栏输入
10,11,12,13,14,15,16)、Shift+点击切换每位玩家不同。 - 编辑画面里青色玻璃板是轮换格;左下角的时钟「轮换商品池」列出没有格子的商品,拿着物品点「加入商品池」就能新增,点商品可以改权重。
%cloudshop_rotation_<商店>% 显示距离下次轮换的时间,见 变量。