折扣与限时特卖
有两种打折方式:
| 方式 | 适合 | 存在哪里 |
|---|---|---|
文件里的折扣 discount: | 长期、规律的折扣:周末九折、晚间时段、节日档期 | 商店文件 |
限时特卖 /cs sale | 临时活动:现在开始打八折 2 小时 | 数据库(重启后仍然有效) |

文件里的折扣
discount 可以写在商店(全店)或商品(单品):
shops/daily.yml
discount:
percent: 10 # 九折
days: [SAT, SUN] # 只在周六、周日
items:
golden_apple:
item: GOLDEN_APPLE
buy: 300
discount: 20 # 这件永远八折(简写)
| 键 | 说明 |
|---|---|
percent | 折扣百分比:20 = 打八折、50 = 半价 |
from | (可不写)开始时间:'2026-10-20 00:00' 或 '2026-10-20' |
to | (可不写)结束时间,格式同上 |
days | (可不写)每周哪几天:[SAT, SUN]、[5, 6, 7]、[周六, 周日] |
hours | (可不写)每天哪个时段:'18:00-22:00';可以跨午夜,例如 '22:00-02:00' |
条件全部成立时才打折。discount: 20 等于永久八折。时间用 config.yml 的 timezone。
# 国庆档期:10/1 – 10/8 全店七五折
discount:
percent: 25
from: '2026-10-01'
to: '2026-10-08'
# 每天晚上 8 点到 10 点的欢乐时光
discount:
percent: 15
hours: '20:00-22:00'
限时特卖
/cs sale <目标> <折扣%> <时长> [broadcast]
/cs sale list
/cs sale stop <目标|all>
| 目标 | 范围 |
|---|---|
blocks | 整个商店 |
blocks:beacon | 一件商品(商店:商品 key) |
* | 全部商店 |
时长:30m、2h、3d、1w, 也可以组合 1d12h。最后加上 broadcast 会全服广播:
/cs sale daily 20 2h broadcast
✦ 限时特卖 每日特惠 全部 -20% 持续 2小时,/cs 前往选购!
/cs sale list列出进行中的特卖、剩余时间与开启的人;/cs sale stop daily提前结束,/cs sale stop all全部结束。- 特卖存在数据库:重启服务器后继续有效,时间到自动结束,不需要定时器。
- 共用 MySQL 时,在一个子服开的特卖,其他子服 30 秒内生效。
- 广播文字在
messages.yml的sale-broadcast。
多个折扣同时成立
商品的折扣、商店的折扣、限时特卖(商品 / 商店 / 全部)不叠加,取折扣最多的那一个。
- 买价 = 原价 × 行情倍数 × (1 − 折扣%)。
- 折扣与特卖只影响买价,回收价不变。
- 整数货币打完折至少还是 1。
玩家看到的
| 地方 | 显示 |
|---|---|
| 商品说明 | 「买入价格:」后面依序是加了删除线的原价、现价与 -20%;有结束时间时下面一行「特卖剩余:1小时58分」 |
| 商品图示 | 发光 |
| 主菜单的商店图示 | 全店折扣或特卖时多一行「✦ 特卖中 -20%」并发光 |
| 云界面 | 商品卡片右上角「-20%」徽章、商店标题下方「全店特卖 -20% · 剩余 …」 |
%cloudshop_sale_<商店>% 输出这个商店目前的全店折扣百分比(没有时 0),见 变量。
在管理介面设定
游戏内管理介面 的商品设定或商店设定里,左键「折扣」/「全店折扣」,聊天栏输入:
| 输入 | 结果 |
|---|---|
20 | 永久八折 |
30 2d | 七折,两天后结束(写入 to:) |
0 | 取消 |
每周哪几天、每天的时段请直接写在文件里或用 网页编辑器。