跳到主要内容

仓库与解锁

从 1.1.0 起,行囊分成好几个 仓库(仓库 1、仓库 2……),不再是一页 45 格一页一页往下翻。 画面左边列出全部仓库,点一下就切换;每个仓库 1 – 6 排,默认 6 排 = 54 格,默认上限 270 格正好 5 个仓库。 还没解锁的空间可以 一格一格解锁,也可以 一次解锁整个仓库,由管理员在 config.yml 决定,每个仓库还能单独设定名称、解锁方式与价格。

云界面行囊:左边是仓库列表,中��间是仓库 1

仓库是什么​

行囊的容量仍然是一个数字:默认格数 + 权限加成 + 扩充格数(扩充卷、购买、管理员调整),不超过 bag.max-slots(见 扩充容量)。 这些格子 从仓库 1 的第 1 格开始依序排下去,仓库只是把它们每 rows × 9 格分成一组:

  • 上图的玩家容量 67 格(默认 27 + 扩充 40)、每个仓库 54 格 → 仓库 1 的 54 格全部解锁,仓库 2 解锁前 13 格;
  • 列表一共显示 max-slots ÷ 每个仓库格数(有余数就多一个)个仓库,还没解锁的也会列出(「仓库 3 · 未解锁」),可以先看看;
  • max-slots 不是仓库格数的整数倍时,最后一个仓库只有剩下那几格;
  • 管理员把上限调小后,后面的仓库里还放着物品时那个仓库照样列出,物品只能取出、不会消失。
warehouse.rows每个仓库上限 270 格 =箱子菜单
6(默认)54 格5 个仓库每个仓库 2 页(前 5 排一页、第 6 排一页)
545 格6 个仓库每个仓库 1 页
436 格8 个仓库(最后一个 18 格)每个仓库 1 页
327 格10 个仓库每个仓库 1 页
warehouse:
# 每个仓库几排(每排 9 格,1 – 6)
rows: 6
# 仓库名称,{n} = 第几个仓库(可用颜色)
name: '仓库 {n}'

切换仓库​

云界面​

  • 左边的仓库列表:「仓库 1 · 26/54」= 已用 / 已解锁格数;没解锁的显示「仓库 3 · 未解锁」,下一次购买会打开的那个仓库是金色字;
  • 点一下就切换,中间上方显示仓库名称与「已解锁 54 / 54 格 · 已用 26 格」;鼠标移到仓库上显示格数与解锁价格;
  • 列表一页 8 个,超过 8 个仓库时下面出现翻页(‹ 1 / 3 ›);
  • 手上拿着物品时也可以切换仓库,再放进别的仓库;
  • 搜索时中间显示整个行囊的搜索结果(每页 54 个),点任何一个仓库就离开搜索。

每个仓库 4 排、上限 600 格:17 个仓库,列表分 3 页

箱子菜单​

没有材质包的玩家用箱子菜单:上面 5 行显示仓库,最下面一行是按钮(见 打开与操作)。

  • 1 – 5 排的仓库一页一个;6 排的仓库分两页:第一页前 5 排,第二页第 6 排(其余位置用黑色玻璃补满);
  • 「上一页 / 下一页」左键 一页一页翻(翻完一个仓库接着下一个),右键 直接跳到上一个 / 下一个仓库;
  • 标题显示仓库名称与页数,例如「仓库 1 1/10」(5 个 6 排仓库共 10 页);箭头的说明写着要去哪里,例如「到 仓库 1(2/2)」。

指令​

  • /bag <仓库编号>(或 /bag open <仓库编号>)直接打开第几个仓库,超过最后一个就打开最后一个;
  • 管理员 /bag see <玩家> [仓库编号] 查看别人的行囊。

解锁方式​

warehouse:
# slot = 一格一格解锁:每次解锁 buy.step 格,价格看 buy.prices
# warehouse = 一次解锁整个仓库:价格看 warehouse.prices
unlock: slot

两种方式都要 buy.enabled: true、玩家有 starbag.buy 权限,用 buy.currency 的货币付款(货币写法见 配置)。

一格一格解锁(slot)​

buy:
enabled: true
# 一格一格解锁时,每次解锁几格(不会跨到下一个仓库)
step: 1
currency: money
# 第 1 次、第 2 次、第 3 次……解锁的价格;次数超过列表就一直用最后一个
prices: [500, 500, 500, 800, 800, 800, 1000]
  • 每次解锁 buy.step 格(默认 1 格);第 n 次购买用 prices 的第 n 个价格,超过列表一直用最后一个;
  • 「第 n 次」算的是这个玩家全部的购买次数(%starbag_bought%,整仓解锁也算一次);
  • 一次解锁 不会跨到下一个仓库:仓库剩下不到 step 格时,这次只解锁到仓库结尾,价格照算一次。step 建议用能整除仓库格数的数字(6 排仓库 54 格:例如 1、3、9),默认格数与权限加成最好也是它的倍数;
  • 想像以前一样一次买一排:step: 9。

整仓解锁(warehouse)​

warehouse:
unlock: warehouse
# 整个仓库解锁的价格:第 1、2、3……个仓库;超过列表就一直用最后一个
prices: [20000, 50000, 100000, 200000, 400000]
  • 一次解锁一整个仓库,价格按 第几个仓库 取 warehouse.prices,超过列表一直用最后一个;
  • 仓库里已经有一部分格子解锁(默认格数、扩充卷、权限加成排进来)时,只收还锁着的那部分比例: 默认 27 格时仓库 1 还锁着 27 / 54 格,解锁仓库 1 收 20000 × 27 / 54 = 10000;
  • max-slots 不是整仓倍数时,最后那个不完整的仓库同样按格数比例收费;
  • 没写 prices(或一个数字都读不出来)时用默认价格,不会变成免费;真的要免费请明确写 0。

发亮的格子​

仓库 2:下一个可以解锁的格子发亮,说明框写着价格

  • 下一次可以解锁的格子会发亮:云界面是金色发光的锁,箱子菜单是 menu.yml 的 locked-next(默认绿色玻璃、带光效)。 一格一格解锁 = 接下来那 step 格;整仓解锁 = 那个仓库还锁着的全部格子;
  • 鼠标移到发亮的格子上会写着这次解锁什么、多少钱(云界面「左键解锁 1 格 · 500 金币」,箱子菜单「点击解锁 1 格 · 500 金币」),左键点它就购买(和解锁按钮、/bag buy 一样);
  • 点其他未解锁的格子 不会购买,只提示:同一个仓库里 → unlock-first「请先解锁前面的格子」;别的仓库 → unlock-warehouse-first「请先解锁 仓库 2」;
  • 只在玩家自己的行囊、开放购买、有 starbag.buy 权限时才发亮;管理员查看别人的行囊时不会。

解锁永远 接着往后:从第一个还锁着的格子开始,不能跳过前面的仓库先买后面的。扩充卷、权限加成、管理员调整格数也一样是从仓库 1 往后加格子。 例如仓库 1 已经全开时用了一张 +9 扩充卷:仓库 2 的前 9 格先解锁,之后整仓解锁仓库 2 只收剩下 45 格的价格(45 / 54)。

按点下去那一刻计价​

解锁的格数与价格按 点下去那一刻的容量 计算。付款之后、写进数据库之前,如果这个行囊的扩充格数或购买次数被别处改了 (另一个子服同时购买、用了扩充卷、管理员调整格数),这次 不会解锁、钱原数退回,并提示 buy-changed;再点一次就按新的容量重新计价。 所以不会出现「付了一个仓库的钱却只解锁几格」或「同一个价格买到两次」。

单独设定某个仓库​

warehouse.list 里用数字(第几个仓库,从 1 开始)单独设定,三项都可以不写:

键作用
name这个仓库的名称(可用颜色;列表里太长会以「…」结尾)
unlock这个仓库的解锁方式:slot 或 warehouse
priceslot 模式 = 这个仓库里 每次 解锁的固定价格(不看 buy.prices);warehouse 模式 = 整个仓库 的价格(不看 warehouse.prices,同样按还锁着的比例收)
warehouse:
list:
3:
name: '<gold>VIP 仓库'
unlock: warehouse
price: 100000

没写在 list 里的仓库都用上面的 name、unlock 与价格。

备注

name 只影响显示,不会限制谁能买:购买条件和其他仓库一样(开放购买、starbag.buy 权限、付得起)。

完整范例​

范例只列出和仓库、解锁有关的键,没列出的键(例如 bag.permission-slots、currencies)保持默认内容即可。

一格一格解锁(默认)​

bag:
default-slots: 27 # 一开始有仓库 1 的前 3 排
max-slots: 270 # 5 个仓库

warehouse:
rows: 6
name: '仓库 {n}'
unlock: slot
list: {}

buy:
enabled: true
step: 1
currency: money
prices: [500, 500, 500, 800, 800, 800, 1000]

一开始仓库 1 的第 28 格发亮;第 1 – 3 次解锁 500 金币、第 4 – 6 次 800,之后每格 1000。仓库 1 解锁完接着是仓库 2 的第 1 格。

整仓解锁​

bag:
default-slots: 54 # 一开始就有完整的仓库 1
max-slots: 270 # 5 个仓库

warehouse:
rows: 6
name: '仓库 {n}'
unlock: warehouse
# 仓库 1 已经全开(0 不会用到);仓库 2 三万、仓库 3 六万……
prices: [0, 30000, 60000, 120000, 240000]
list: {}

buy:
enabled: true
currency: money

仓库 2 的 54 格全部发亮,点一下 30000 金币解锁整个仓库 2。有 starbag.vip(+18 格)的玩家仓库 2 已经开了 18 格,解锁仓库 2 只要 30000 × 36 / 54 = 20000。

混合:仓库 1 – 2 一格一格,仓库 3 整仓​

bag:
default-slots: 27
max-slots: 162 # 3 个仓库

warehouse:
rows: 6
name: '仓库 {n}'
unlock: slot # 没单独设定的仓库:一格一格
list:
2:
price: 1000 # 仓库 2 每格固定 1000(不看 buy.prices)
3:
name: '<gold>VIP 仓库'
unlock: warehouse
price: 100000 # 整个仓库 100000

buy:
enabled: true
step: 1
currency: money
prices: [500, 500, 500, 800, 800, 800, 1000] # 仓库 1 用这个

仓库 1 按 buy.prices 一格一格解锁;仓库 2 每格 1000;仓库 1、2 都解锁完以后,「VIP 仓库」整个发亮,100000 金币一次解锁。

整理与存入​

sort:
mode: type
# warehouse = 只整理正在看的仓库(物品不会跑到别的仓库);all = 整个行囊一起整理
scope: warehouse
  • sort.scope: warehouse(默认):「整理」按钮只整理正在看的仓库;在搜索结果里按或用 /bag sort 时,每个仓库 各自 整理,物品不会换仓库;
  • sort.scope: all:整个行囊一起整理,物品从仓库 1 开始往后排;
  • 一键存入、Shift 存入:先叠到行囊里同样的物品上,再放进空格,两步都是 正在看的仓库优先,放不下再用其他仓库(从仓库 1 往后);在搜索结果里存入、或用 /bag deposit 指令时没有正在看的仓库,从仓库 1 开始。

之后改排数​

行囊记的是「第几格」,仓库只是分组方式,所以 rows 随时可以改,/bag reload 后生效:

  • 例如 6 排改成 4 排:原本仓库 1 的第 37 – 54 格变成仓库 2 的前 18 格,后面依此类推;
  • 物品 不会消失也不会搬动,只是出现在不同的仓库里;容量、已购买次数、扩充卷都不变;
  • 已经解锁的格子仍然是解锁的(容量没变),只是可能分到不同的仓库。

从 1.0.x 升级​

  • 数据格式不变,替换 jar 即可;config.yml 没有 warehouse 段时就是 6 排仓库、一格一格解锁,buy.step / buy.prices 照你原本写的(例如一次 9 格);
  • 整理默认改为只整理目前的仓库,想和以前一样整个行囊一起整理:sort.scope: all;
  • 没改过的 menu.yml 会自动换成仓库版本(旧文件改名 menu.yml.old),改过的保留不动,见 菜单;
  • 云界面画面改过的旧版照旧每页 45 格翻页,见 云界面行囊。