特征
- 允许玩家通过高度可配置的皮带按钮打开背包
- 允许玩家从一系列替代按钮位置中进行选择
- 允许玩家隐藏按钮
- 允许显示背包是否启用了收集或检索模式
- 允许显示一个指示背包有多满的条
- 允许显示背包中占用的插槽数和总插槽数
截图
所需插件
- 背包v3.11.0 或更高版本
安装
- 将插件添加到
oxide/plugins
Rust 服务器安装目录中。 - 如果您想默认禁用该按钮(要求玩家自己启用它),请在配置中设置
Default button position
为""
并重新加载插件。 backpackbutton.use
向您想要查看该按钮的用户或组授予权限。例如,运行命令oxide.grant group default backpackbutton.use
以允许所有玩家看到该按钮。
当 Backpacks 插件检测到 Backpack Button 插件时,它会自动禁用其内置 GUI 按钮。
权限
oxide.grant <user or group> <name or steam id> <permission>
. 要删除权限,请使用oxide.revoke <user or group> <name or steam id> <permission>
.backpackbutton.use
— 允许玩家查看并切换背包按钮。
命令
backpackui
— 显示有关如何使用命令以及可用按钮位置的帮助信息。backpackui <position>
(Left
|Right
|Toggle
|Off
) — 更改您首选的背包按钮位置。用于Toggle
显示或隐藏按钮而不更改首选位置。用于Off
隐藏背包按钮。
配置
BackpackButton
可以在目录下的文件中配置设置和选项config
。建议使用编辑器和验证器以避免格式问题和语法错误。默认配置:
{
"Commands": [
"backpackui",
"backpackbutton"
],
"Background": {
"Enabled": true,
"Color": "0.969 0.922 0.882 0.035",
"Sprite": "assets/content/ui/ui.background.tiletex.psd"
},
"Gather mode indicator": {
"Enabled": true,
"Color": "0.4 0.8 1 1"
},
"Retrieve mode indicator": {
"Enabled": true,
"Color": "0.4 0.8 1 1"
},
"Occupied & total slots": {
"Show occupied slots": true,
"Show total slots": true,
"Offset min": "0 -18",
"Offset max": "60 0",
"Text align": "MiddleCenter",
"Default color": "0.4 0.8 0.4 1",
"Enable dynamic color": true,
"Dynamic color by fullness percent": {
"70": "0.8 0.8 0.2 1",
"80": "0.8 0.4 0.2 1",
"90": "0.8 0.2 0.2 1"
}
},
"Fill bar": {
"Enabled": true,
"Width": 4.0,
"Sprite": "assets/content/ui/ui.background.tiletex.psd",
"Default color": "0.4 0.8 0.4 1",
"Enable dynamic color": true,
"Dynamic color by fullness percent": {
"70": "0.8 0.8 0.2 1",
"80": "0.8 0.4 0.2 1",
"90": "0.8 0.2 0.2 1"
}
},
"Default button position": "Right",
"Button positions": [
{
"Name": "Left",
"Enabled": true,
"Offset X": -263.5,
"URL": "https://i.imgur.com/1Tep5Ad.png",
"Skin ID": 0,
"Image size": 56.0
},
{
"Name": "Right",
"Enabled": true,
"Offset X": 185.0,
"URL": "https://i.imgur.com/wleeQkt.png",
"Skin ID": 0,
"Image size": 56.0
}
]
}
Commands
— 确定哪些命令可用于更改按钮首选项。Background
— 控制背包图像后面的背景面板。Enabled
(true
或false
) — 确定是否启用背景面板。默认值:true
.Color
— 确定背景面板的颜色。默认值:"0.969 0.922 0.882 0.035"
.Sprite
— 确定背景面板的精灵。这必须是有效的客户端资产。对于所有已知的客户端资产,没有明确的参考,因此,如果您想对其进行自定义,则需要您自己进行。默认值:"assets/content/ui/ui.background.tiletex.psd"
.
Gather mode indicator
— 控制“收集”模式指示器的显示,当玩家的背包至少有一页启用“收集”模式时,该指示器就会显示。Enabled
(true
或false
) — 确定是否启用收集模式指示器。默认值:true
.Color
— 确定指示器的文本颜色。默认值:"0.4 0.8 1 1"
.
Retrieve mode indicator
— 控制检索模式指示器的显示,当玩家的背包至少启用一页检索模式时显示该指示器。Enabled
(true
或false
) — 确定是否启用检索模式指示器。默认值:true
.Color
— 确定指示器的文本颜色。默认值:"0.4 0.8 1 1"
.
Occupied & total slots
— 控制占用和总槽位文本的显示。如果已启用插槽和总插槽都已启用,您将看到类似“15/48”的文本。如果仅启用一个号码,您将仅看到该号码。Show occupied slots
(true
或false
) — 确定是否显示当前占用的槽位数。默认值:true
.Show total slots
(true
或false
) — 决定是否显示背包的总容量。默认值:true
.Offset min
— 确定包含文本的不可见框的左下角点相对于背包按钮左下角的 X 和 Y 坐标。Offset max
— 确定包含文本的不可见框右上角相对于背包按钮左下角的 X 和 Y 坐标。Text align
— 确定文本对齐方式。默认值:"MiddleCenter"
。- 允许的值:
"UpperLeft"
,"UpperCenter"
,"UpperRight"
,"MiddleLeft"
,"MiddleCenter"
,"MiddleRight"
,"LowerLeft"
,"LowerCenter"
,"LowerRight"
。
- 允许的值:
Default color
— 确定默认文本颜色。如果您设置了 ,显示的颜色可能会有所不同"Enable dynamic color": true
。默认值:"0.4 0.8 0.4 1"
。Enable dynamic color
(true
或false
) — 确定是否启用动态文本颜色。默认值:true
.Dynamic color by fullness percent
— 根据背包的满度确定文字颜色。
Fill bar
— 控制填充条的显示,该填充条指示背包的填充程度。Enabled
(true
或false
) — 确定是否启用填充栏。默认值:true
.Sprite
— 确定填充条的精灵。这必须是有效的客户端资产。对于所有已知的客户端资产,没有明确的参考,因此,如果您想对其进行自定义,则需要您自己进行。默认值:"assets/content/ui/ui.background.tiletex.psd"
。Width
— 确定填充条的宽度。默认值:4.0
.Default color
— 确定填充栏的默认颜色。如果您设置了 ,显示的颜色可能会有所不同"Enable dynamic color": true
。默认值:"0.4 0.8 0.4 1"
.Enable dynamic color
(true
或false
) — 确定是否启用动态文本颜色。默认值:true
.Dynamic color by fullness percent
— 根据背包的满度确定文字颜色。
Default button position
— 确定默认按钮位置。设置""
为默认禁用该按钮。该值必须对应于已设置为 的部分Name
中的位置。默认值:.Button positions
Enabled
true
"Right"
Button positions
— 确定可用按钮位置。Name
— 确定按钮位置的名称。该名称用于生成本地化选项,可以通过 引用Default button position
。Enabled
— 确定该按钮位置是否可以使用。Offset X
— 确定按钮左下角相对于屏幕底部中心的 X 偏移量。URL
— 确定按钮图像。Skin ID
如果不是,则没有任何影响0
。Skin ID
— 使用锈皮确定按钮图像。设置为来代替0
使用URL
。默认值:0
.Image size
— 确定图像的大小。建议不要高于60.0
,特别是如果您启用了后台。默认值:56.0
.
本土化
BackpackButton
该lang/en
目录下的文件中。要添加对另一种语言的支持,请创建一个新的语言文件夹(例如de
德语)(如果尚未创建),将默认语言文件复制到新文件夹,然后自定义消息。{
"Usage": "Usage: <color=#fd4>{0}</color> <position>\n\nPositions: {1}",
"Off": "Off",
"No Permission": "You don't have permission to use this command.",
"Position.Left": "Left",
"Position.Right": "Right"
}
局限性
当玩家连接到服务器时,该按钮最初不会显示填充栏、占用的插槽或收集和检索指示器。那是因为玩家的背包还没有装填。一旦玩家打开背包,按钮就会更新。这实际上很有用,因为它向玩家指示收集和检索模式当前是否处于活动状态,因为如果背包尚未加载,它们就不会处于活动状态。如果您想知道为什么背包在玩家连接时不会自动加载,这是背包中的性能优化,以避免加载数据和创建不一定会使用的对象。
常问问题
Backpacks 插件不是已经有按钮功能了吗?
是的,但该功能比该插件提供的功能要有限得多。
将其放在 Backpacks 插件本身中不是会提高性能吗?
并不真地。该插件通过高性能 API(而不是通过 Oxide 调用)与 Backpacks 通信,因此这种方法基本上没有性能牺牲。
为什么这不只是 Backpacks 插件的一部分?
虽然背包插件确实具有基本的按钮功能,但对附加按钮功能有许多不同的要求。不断更新背包来解决所有这些问题是不可行的。对于开发人员来说,创建 Backpacks 插件的替代版本也不是一个好的维护策略。允许通过插件创建替代按钮是最具可扩展性的设计。如果这个插件不能满足您的需求,您可以分叉它,而无需自定义核心 Backpacks 插件。
我真的很喜欢这个插件的功能;它们是否会被添加到核心背包插件中,这样我就可以少安装一个插件?
也许有一天。请记住,“少一个插件”几乎没有什么实际好处。这种类型的插件几乎不需要维护或更新。
背包介绍如下
特征
允许玩家拥有背包,为他们提供额外的库存空间。
- 每个玩家的可定制容量(使用权限)
- 死亡时可选择掉落或清除背包内容
- 可以选择在地图擦拭时清除背包内容
- 可选项目限制
- 用于访问背包的可选 GUI 按钮
- 可选择自动将新获得的物品收集到背包中
- 可选择自动从背包中检索物品以进行手工制作、建筑等。
注意:要绑定打开背包的钥匙,请bind <key> backpack
在 F1 客户端控制台中使用:。例如,bind b backpack
.
快速开始
允许玩家打开背包
要允许所有玩家使用背包,请运行以下命令。
o.grant group default backpacks.use
/backpack
这将允许所有玩家使用聊天命令或控制台命令打开背包backpack
。默认情况下,所有背包都有 6 个容量槽(1 行),但可以通过配置和分配权限来更改。
允许玩家使用 GUI 按钮
要允许所有玩家查看背包 GUI 按钮,请运行以下命令。
o.grant group default backpacks.gui
玩家可以点击该按钮来打开背包。他们还可以运行/backpackgui
聊天命令来隐藏或显示按钮。如果您想默认禁用该按钮,以便玩家必须明确启用它,您可以在配置中执行此操作。
命令
backpack
/backpack.open
— 打开你自己的背包。需要backpacks.use
许可。如果背包已经打开,这将前进到下一页,或者如果没有更多页面,将关闭玩家库存。backpack.fetch <item short name or id> <amount>
— 从背包中取出物品。backpackgui
— 切换是否可以看到背包 GUI 按钮。backpack.setgathermode <All|Existing|Off> <optional page number>
— 设置指定背包页面的收集模式。如果未指定页码,则适用于第一页。此命令对于通过按键绑定快速更改收集模式非常有用,而无需打开背包。注意:如果您想通过聊天而不是通过控制台持续接收此命令的反馈,您应该像绑定它而bind <key> chat.say "/backpack.setgathermode All"
不是bind <key> backpack.setgathermode All
.
管理命令
viewbackpack <name or steam id>
— 打开另一个玩家的背包(需要backpacks.admin
许可)
服务器命令
backpack.erase <steam id>
— 强行删除特定玩家背包中的所有内容,即使他们拥有backpack.keeponwipe.*
通常可以豁免的权限。
权限
oxide.grant <user or group> <name or steam id> <permission>
. 要删除权限,请使用oxide.revoke <user or group> <name or steam id> <permission>
.backpacks.use
— 需要打开自己的背包。backpacks.admin
— 需要使用该viewbackpack
命令。backpacks.gui
— 需要查看 GUI 按钮。backpacks.fetch
— 需要使用该backpack.fetch
命令。backpacks.keepondeath
— 使你的背包在死亡时不会被抹掉或掉落。backpacks.gather
— 允许您为每个背包页面启用收集模式,该模式会自动将新获得的库存物品转移到您的背包中。- 注意:当您与服务器断开连接并在一段时间后重新连接时,收集模式将不会激活,除非您至少打开一次背包。
backpacks.retrieve
— 允许您启用每个背包页面的检索模式。启用检索模式后,您可以使用指定背包页面中的物品进行建造、制作等。需要物品检索器插件。- 注意:当您与服务器断开连接并在一段时间后重新连接时,检索模式将不会激活,直到您至少打开一次背包。此外,重新装载武器弹药、切换武器弹药、从自动售货机购买物品以及从 NPC 供应商购买车辆将无法从页面中提取物品,除非您在(重新)连接到服务器后至少访问这些特定页面一次。
大小权限
如果您想授予特定玩家或团体比默认值 ( Backpack size
-> Default size
) 更多的背包容量,那么您可以通过权限来实现。Backpack size
-> config 选项中出现的每个数字Permission sizes
都会导致插件生成格式的权限backpacks.size.<number>
,该权限为相应的玩家或组分配那么多的容量。例如,backpacks.size.18
将分配 18 个容量槽(3 行)。
插件的默认配置附带以下权限。
backpacks.size.6
— 1 行backpacks.size.12
— 2 行backpacks.size.18
— 3 行backpacks.size.24
— 4 行backpacks.size.30
— 5 行backpacks.size.36
— 6 行backpacks.size.42
— 7 行backpacks.size.48
— 8 行backpacks.size.96
— 16 行(2+ 页)backpacks.size.144
— 24 行(3 页以上)
Backpack size
可以通过简单地将它们添加到-> Permission sizes
config 选项并重新加载插件来定义其他权限。
注意:如果玩家被授予多个尺寸权限,则以最高者为准。
项目限制权限
如果您想允许特定玩家或团体的背包接受与默认不同的物品(Item restrictions
-> Default ruleset
),那么您可以通过权限来实现。Item restrictions
-> config 选项中定义的每个规则集Rulesets by permission
都会导致插件生成 format 的权限backpacks.restrictions.<name>
。授予该权限会将该规则集分配给相应的玩家或组。
插件的默认配置附带以下权限。
backpacks.restrictions.allowall
— 允许玩家背包中的所有物品。仅当您自定义了默认规则集来限制项目时才有用。
注意:如果玩家被授予多个backpacks.restrictions.*
权限,则根据配置中的规则集顺序应用最后一个权限。
保留擦除权限
如果您希望允许特定玩家或团体的背包在擦拭过程中保留与默认 ( Clear on wipe
> Default ruleset
) 不同的物品,那么您可以通过权限来实现。Clear on wipe
> config 选项中定义的每个规则集Rulesets by permission
都会导致插件生成 format 的权限backpacks.keeponwipe.<name>
。授予该权限会将该规则集分配给相应的玩家或组。
插件的默认配置附带以下权限。
backpacks.keeponwipe.all
— 允许所有物品保持在湿巾上。
注意:如果玩家被授予多个backpacks.keeponwipe.*
权限,则根据配置中的规则集顺序应用最后一个权限。
旧版权限
backpacks.use.1 - 8
— 类似backpacks.size.*
,但分配指定的行数而不是槽数。"Backpack size"
这些权限将在设置> config 选项时生成,如果您当时设置了"Enable legacy backpacks.use.1-8 row permissions": true
config 选项,则在从以前版本的插件升级时,这些权限将自动添加到您的配置中。"Backpack Size (1-8 Rows)"
backpacks.noblacklist
— 使玩家免受物品限制,允许将任何物品放入背包中。"Item restrictions"
设置> config 选项时存在此权限,如果您当时设置了或"Enable legacy noblacklist permission": true
config 选项,则在从以前版本的插件升级时,该权限将自动添加到您的配置中。"Use Whitelist (true/false)": true
"Use Blacklist (true/false)": true
backpacks.keeponwipe
— 使玩家免于在地图擦除时擦除背包内容。"Clear on wipe"
设置> config 选项时存在此权限"Enable legacy keeponwipe permission": true
,如果您当时设置了 config 选项,则在从以前版本的插件升级时,该权限将自动添加到您的"Clear Backpacks on Map-Wipe (true/false)": true
配置中。
配置
Backpacks
可以在目录下的文件中配置设置和选项config
。建议使用编辑器和验证器以避免格式问题和语法错误。默认配置:
{
"Backpack size": {
"Default size": 6,
"Max size per page": 48,
"Enable legacy backpacks.use.1-8 row permissions": false,
"Permission sizes": [
6,
12,
18,
24,
30,
36,
42,
48,
96,
144
]
},
"Drop on Death (true/false)": true,
"Erase on Death (true/false)": false,
"Minimum Despawn Time (Seconds)": 300.0,
"GUI Button": {
"Enabled": true,
"Enabled by default (for players with permission)": true,
"Skin Id": 0,
"Image": "https://i.imgur.com/T6orn2Q.png",
"Background Color": "0.969 0.922 0.882 0.035",
"GUI Button Position": {
"Anchors Min": "0.5 0.0",
"Anchors Max": "0.5 0.0",
"Offsets Min": "185 18",
"Offsets Max": "245 78"
}
},
"Container UI": {
"Show page buttons on container bar": false
},
"Softcore": {
"Reclaim Fraction": 0.5
},
"Item restrictions": {
"Enabled": false,
"Enable legacy noblacklist permission": false,
"Feedback effect": "assets/prefabs/locks/keypad/effects/lock.code.denied.prefab",
"Default ruleset": {
"Allowed item categories": [
"All"
],
"Disallowed item categories": [],
"Allowed item short names": [],
"Disallowed item short names": [],
"Allowed skin IDs": [],
"Disallowed skin IDs": []
},
"Rulesets by permission": [
{
"Name": "allowall",
"Allowed item categories": [
"All"
],
"Disallowed item categories": [],
"Allowed item short names": [],
"Disallowed item short names": [],
"Allowed skin IDs": [],
"Disallowed skin IDs": []
}
]
},
"Clear on wipe": {
"Enabled": false,
"Enable legacy keeponwipe permission": false,
"Default ruleset": {
"Max slots to keep": 0,
"Allowed item categories": [],
"Disallowed item categories": [],
"Allowed item short names": [],
"Disallowed item short names": [],
"Allowed skin IDs": [],
"Disallowed skin IDs": []
},
"Rulesets by permission": [
{
"Name": "all",
"Max slots to keep": -1,
"Allowed item categories": [
"All"
],
"Disallowed item categories": [],
"Allowed item short names": [],
"Disallowed item short names": [],
"Allowed skin IDs": [],
"Disallowed skin IDs": []
}
]
},
}
背包尺寸
Backpack size
Default size
(默认:6
) — 确定有权限的玩家的背包容量(以插槽为单位)backpacks.use
。拥有backpacks.size.<number>
权限的玩家可能拥有更大的能力。Max size per page
(默认:48
,最大:48
) — 确定每个背包页面的容量(以插槽为单位)。例如,如果您授予玩家60
背包容量,并将每页的最大大小设置为48
,则他们的背包将有两页:一页有48
容量,另一页有12
容量。Enable legacy backpacks.use.1-8 row permissions
(true
或false
; 默认:false
) — 确定backpacks.use.1-8
插件是否注册权限。将插件升级到 3.9+ 时,如果设置了"Backpack Size (1-8 Rows)"
config 选项,则会自动启用此选项以实现向后兼容性。即使您是第一次安装该插件,也有有效的用例来启用此选项,例如,如果您使用另一个管理这些权限的插件。截至撰写本文时,XPerience 和 Backpack Upgrader 插件都使用这些权限来允许玩家通过进度系统增加容量,但在您阅读本文时,情况可能已经发生变化。Permission sizes
– 此列表中的每个数字都会生成该格式的许可backpacks.size.<number>
。向玩家或团体授予该权限即可为他们的背包分配足够的容量。如果您希望某些玩家拥有比上述默认值更多的容量,这非常有用。注意:如果玩家被授予多个尺寸权限,则以最高者为准。
图形用户界面按钮
GUI Button
— 确定 GUI 按钮的显示,玩家可以单击该按钮来打开和关闭背包。Enabled
(true
或false
; 默认:true
) — 确定是否启用 GUI 按钮。如果您不打算向任何玩家显示 GUI 按钮,请将其设置为以false
提高性能。禁用此功能也会取消注册该backpackgui
命令,以便另一个插件可以注册它。Enabled by default (for players with permission)
(true
或false
; 默认:true
) — 确定默认情况下是否为新玩家显示 GUI 按钮(如果他们有权限)backpacks.gui
。Skin Id
(默认值:0
) — 确定用于显示 GUI 按钮的外观 ID,作为Image
URL 的替代。Image
(默认值:)"https://i.imgur.com/CyF0QNV.png"
– 确定要在 GUI 按钮上显示的图像的 URL,作为 的替代Skin Id
。Background Color
— 默认:"0.969 0.922 0.882 0.035"
.GUI Button Position
— 确定按钮的位置和大小。Anchors Min
— 默认:("0.5 0.0"
屏幕底部中心)。除非您知道自己在做什么,否则不要更改此设置。Anchors Max
— 默认:("0.5 0.0"
屏幕底部中心)。除非您知道自己在做什么,否则不要更改此设置。Offsets Min
— 确定按钮的左下位置。默认值:("185 18"
皮带右侧)。Offsets Max
— 确定按钮的右上角位置。默认值:("245 78"
皮带右侧)。
替代背包图片:
容器用户界面
Container UI
— 控制背包容器UI的显示。Show page buttons on container bar
(true
或false
;默认值:false
) — 确定页面按钮(例如,1、2、3)是否显示在容器栏上或容器栏上方。默认情况下,它们显示在容器栏上方,以允许与排序按钮插件兼容。但是,如果您使用快速排序插件并希望每个背包页面有 48 个容量槽,您可能需要启用此选项以便向下移动页面按钮。
推荐用于排序按钮(默认):
推荐用于快速排序:
物品限制
Item restrictions
Enabled
— 确定玩家背包是否受到物品限制。设置为false
禁用所有玩家的物品限制。设置为true
以使以下规则集适用。注意:无论这些设置如何,其他插件都可以阻止使用挂钩将特定物品添加到背包中CanBackpackAcceptItem
。- 注意:为了使此功能发挥作用,必须安装 Oxide,并且在服务器首次使用新地图启动时必须加载该插件。在极少数情况下,服务器所有者会错误地在未安装 Oxide 的情况下在 Rust 更新后启动服务器,或者插件已过期(例如,无法编译),从而导致背包无法被擦除。如果您犯了这个错误,建议您通过删除服务器保存文件并再次重新启动服务器来再次擦除服务器,因为依赖于检测地图擦除的其他插件也会受到影响。或者,您可以通过卸载插件,删除目录
oxide/data/Backpacks
,然后加载插件来手动擦除所有背包。
- 注意:为了使此功能发挥作用,必须安装 Oxide,并且在服务器首次使用新地图启动时必须加载该插件。在极少数情况下,服务器所有者会错误地在未安装 Oxide 的情况下在 Rust 更新后启动服务器,或者插件已过期(例如,无法编译),从而导致背包无法被擦除。如果您犯了这个错误,建议您通过删除服务器保存文件并再次重新启动服务器来再次擦除服务器,因为依赖于检测地图擦除的其他插件也会受到影响。或者,您可以通过卸载插件,删除目录
Enable legacy noblacklist permission
(true
或false
; 默认:false
) — 确定backpacks.noblacklist
插件是否注册了权限。将插件升级到 v3.9+ 时,如果您设置了"Use Whitelist (true/false)": true
或"Use Blacklist (true/false)": true
config 选项,则会自动启用此选项以实现向后兼容性。Feedback effect
— 当玩家尝试将不允许的物品添加到背包时播放的效果预制件。设置""
为禁用该效果。该效果每秒最多播放一次。Default ruleset
— 默认规则集适用于所有玩家的背包,除了已被授予backpacks.restrictions.<name>
权限的玩家(通过下面生成Rulesets by permission
)。Allowed item categories
— 确定分配了此规则集的背包中允许哪些物品类别,以及任何允许的物品短名称和皮肤 ID。- 如果您只想允许特定项目短名称,请将此选项留空 (
[]
),并将这些项目短名称添加到Allowed item short names
。 - 如果您希望允许大多数项目(但有特定例外),请将此选项设置为
"Allowed item categories": ["All"]
,然后使用Disallowed item categories
、Disallowed item short names
和/或Disallowed skin IDs
选项。 - 允许的值:
"All"
,"Ammunition"
,"Attire"
,"Common"
,"Component"
,"Construction"
,"Electrical"
,"Favourite"
,"Food"
,"Fun"
,"Items"
,"Medical"
,"Misc"
,"Resources"
,"Search"
,"Tool"
,"Traps"
,"Weapon"
。
- 如果您只想允许特定项目短名称,请将此选项留空 (
Disallowed item categories
— 确定分配了此规则集的背包中不允许放置哪些物品类别。- 使用此选项的唯一正确方法是设置
"Allowed item categories": ["All"]
并使用此选项来指定您想要禁止的类别。 Allowed item short names
如果某个项目属于不允许的类别,并且在 中指定了该项目的短名称,或者在 中指定了该项目的外观 ID,则该项目仍可能被允许Allowed skin IDs
。- 允许值:与 相同
Allowed item categories
。
- 使用此选项的唯一正确方法是设置
Allowed item short names
— 确定分配了此规则集的背包中允许使用哪些项目短名称,以及任何允许的项目类别和皮肤 ID。- 项目短名称的评估优先级高于项目类别,这意味着您可以使用此选项来允许属于不允许类别的项目。
Disallowed item short names
— 确定分配了此规则集的背包中不允许使用哪些项目短名称。Allowed item categories
如果为空,则此选项无效。- 如果某个项目具有不允许的短名称,并且在 中指定了该项目的外观 ID,则该项目仍可能被允许
Allowed skin IDs
。
Allowed skin IDs
— 确定分配了此规则集的背包中允许使用哪些物品外观 ID,以及任何允许的物品类别和短名称。- 项目外观 ID 的评估优先级高于项目类别和项目短名称,这意味着您可以使用此选项来允许具有不允许的类别或短名称的项目。
Disallowed skin IDs
— 确定分配了此规则集的背包中不允许使用哪些物品外观 ID。Allowed item categories
如果和Allowed item short names
均为空白,则此选项无效。- 如果某个项目具有不允许的外观 ID,则在任何情况下都不会允许该项目,即使该项目具有允许的类别或短名称。
Rulesets by permission
– 此列表中的每个规则集都会生成该格式的权限backpacks.restrictions.<name>
。除Name
选项外,其余选项与 相同Default ruleset
。
规则集示例:
"Rulesets by permission": [
{
"Name": "no_fun_except_trumpet",
"Allowed item categories": [
"All"
],
"Disallowed item categories": [
"Fun"
],
"Allowed item short names": [
"fun.trumpet"
],
"Disallowed item short names": [],
"Allowed skin IDs": [],
"Disallowed skin IDs": []
},
{
"Name": "no_c4",
"Allowed item categories": [
"All"
],
"Disallowed item categories": [],
"Allowed item short names": [],
"Disallowed item short names": [
"explosive.timed"
],
"Allowed skin IDs": [],
"Disallowed skin IDs": []
},
{
"Name": "only_food_but_no_apples",
"Allowed item categories": [
"Food"
],
"Disallowed item categories": [],
"Allowed item short names": [],
"Disallowed item short names": [
"apple",
"apple.spoiled"
],
"Allowed skin IDs": [],
"Disallowed skin IDs": []
}
]
擦拭干净背包
Clear on wipe
Enabled
(默认:false
) — 当 时true
,根据以下规则集,当地图被擦除时,玩家背包中的内容可能会被清除。Enable legacy keeponwipe permission
(true
或false
; 默认:false
) — 确定backpacks.keeponwipe
插件是否注册了权限。将插件升级到 v3.9+ 时,如果设置了"Clear Backpacks on Map-Wipe (true/false)": true
config 选项,则会自动启用此选项以实现向后兼容性。该许可将被该backpacks.keeponwipe.all
许可所取代。Default ruleset
— 默认规则集适用于所有玩家的背包,除了已被授予backpacks.keeponwipe.<name>
权限的玩家(通过下面生成Rulesets by permission
)。Max slots to keep
— 确定擦拭布上可以保留多少个物品槽。设置为-1
保留无限的物品槽位,最多可达背包的大小。- 例如,如果您将其设置为,则当发生擦除时,插件将保留背包中
10
第一个允许的物品,优先考虑背包开头的物品,其余物品将被擦除。10
- 不允许的项目将被跳过,并且不计入此限制。
- 空插槽将被跳过,并且不计入此限制。
- 例如,如果您将其设置为,则当发生擦除时,插件将保留背包中
Allowed item categories
— 确定除了任何允许的项目短名称和皮肤 ID 之外,还允许在擦拭巾中保留哪些项目类别。- 如果您只想允许特定项目短名称,请将此选项留空 (
[]
),并将这些项目短名称添加到Allowed item short names
。 - 如果您希望允许大多数项目(但有特定例外),请将此选项设置为
"Allowed item categories": ["All"]
,然后使用Disallowed item categories
、Disallowed item short names
和/或Disallowed skin IDs
选项。 - 允许的值:
"All"
,"Ammunition"
,"Attire"
,"Common"
,"Component"
,"Construction"
,"Electrical"
,"Favourite"
,"Food"
,"Fun"
,"Items"
,"Medical"
,"Misc"
,"Resources"
,"Search"
,"Tool"
,"Traps"
,"Weapon"
。
- 如果您只想允许特定项目短名称,请将此选项留空 (
Disallowed item categories
— 确定不允许跨擦拭布保留哪些项目类别。- 使用此选项的唯一正确方法是设置
"Allowed item categories": ["All"]
并使用此选项来指定您想要禁止的类别。 Allowed item short names
如果某个项目属于不允许的类别,并且在 中指定了该项目的短名称,或者在 中指定了该项目的外观 ID,则该项目仍可能被允许Allowed skin IDs
。- 允许值:与 相同
Allowed item categories
。
- 使用此选项的唯一正确方法是设置
Allowed item short names
— 确定除了任何允许的项目类别和皮肤 ID 之外,还允许在擦拭巾中保留哪些项目短名称。- 项目短名称的评估优先级高于项目类别,这意味着您可以使用此选项来允许属于不允许类别的项目。
Disallowed item short names
— 确定不允许在擦除过程中保留哪些项目短名称。Allowed item categories
如果为空,则此选项无效。- 如果某个项目具有不允许的短名称,并且在 中指定了该项目的外观 ID,则该项目仍可能被允许
Allowed skin IDs
。
Allowed skin IDs
— 确定除了任何允许的任何项目类别和短名称之外,还允许在擦拭巾中保留哪些项目皮肤 ID 。- 项目外观 ID 的评估优先级高于项目类别和项目短名称,这意味着您可以使用此选项来允许具有不允许的类别或短名称的项目。
Disallowed skin IDs
— 确定不允许在擦拭巾中保留哪些项目皮肤 ID。Allowed item categories
如果和Allowed item short names
均为空白,则此选项无效。- 如果某个项目具有不允许的外观 ID,则在任何情况下都不会允许该项目,即使该项目具有允许的类别或短名称。
Rulesets by permission
– 此列表中的每个规则集都会生成该格式的权限backpacks.keeponipe.<name>
。除Name
选项外,其余选项与 相同Default ruleset
。
规则集示例:
"Clear on wipe": {
"Enabled": true,
"Default ruleset": {
"Max slots to keep": 0,
"Allowed item categories": [],
"Disallowed item categories": [],
"Allowed item short names": [],
"Disallowed item short names": [],
"Allowed skin IDs": [],
"Disallowed skin IDs": []
},
"Rulesets by permission": [
{
"Name": "all",
"Max slots to keep": -1,
"Allowed item categories": [
"All"
],
"Disallowed item categories": [],
"Allowed item short names": [],
"Disallowed item short names": [],
"Allowed skin IDs": [],
"Disallowed skin IDs": []
},
{
"Name": "1row",
"Max slots to keep": 6,
"Allowed item categories": [
"All"
],
"Disallowed item categories": [],
"Allowed item short names": [],
"Disallowed item short names": [],
"Allowed skin IDs": [],
"Disallowed skin IDs": []
},
{
"Name": "2rows",
"Max slots to keep": 12,
"Allowed item categories": [
"All"
],
"Disallowed item categories": [],
"Allowed item short names": [],
"Disallowed item short names": [],
"Allowed skin IDs": [],
"Disallowed skin IDs": []
},
{
"Name": "onlywood",
"Max slots to keep": -1,
"Allowed item categories": [],
"Disallowed item categories": [],
"Allowed item short names": [
"wood"
],
"Disallowed item short names": [],
"Allowed skin IDs": [],
"Disallowed skin IDs": []
}
]
},
其他选项
Drop on Death (true/false)
(默认:true
) — 同时true
,玩家死亡时背包中的物品会掉落在尸体的背包中。当玩家重生时,他们的背包将是空的,但可以找到掉落的背包来恢复其内容。获得许可的玩家backpacks.keepondeath
在死亡时将保留背包中的物品。- 注意:即使启用此选项,拥有
backpacks.keepondeath
权限的玩家在死亡时仍会保留背包内容。 - 注意:即使禁用了掉落背包,其他插件(例如 Raidable Bases)也可能会通过 API 进行配置,强制掉落玩家的背包
API_DropBackpack
。
- 注意:即使启用此选项,拥有
Erase on Death (true/false)
(默认:false
) — 当 时true
,玩家死亡时背包中的内容将被删除。在任何情况下都无法恢复已擦除的背包内容。获得许可的玩家backpacks.keepondeath
在死亡时将保留背包中的物品。- 注意:即使启用此选项,拥有
backpacks.keepondeath
权限的玩家在死亡时仍会保留背包内容。
- 注意:即使启用此选项,拥有
Minimum Despawn Time (Seconds)
(默认值:300.0
)– 确定掉落的背包不会消失的最短时间(以秒为单位)。如果背包内容物较为稀有(由原版 Rust 确定),则背包的消失时间可能会比此持续时间更长。Softcore
— 确定软核模式的选项。Reclaim Fraction
(默认:0.5
,最小值:0.0
,最大值:1.0
) — 如果启用了死亡掉落,则确定当你死亡时发送到回收终端的背包物品的百分比。注意:从你的背包发送到回收终端的物品在你的尸体上是无法获取的。
本土化
Backpacks
该lang/en
目录下的文件中。要添加对另一种语言的支持,请创建一个新的语言文件夹(例如de
德语)(如果尚未创建),将默认语言文件复制到新文件夹,然后自定义消息。常问问题
为什么玩家死亡时背包不会掉落?
背包不掉落的可能原因有以下三个。
- 配置选项
"Drop on Death (true/false)"
是false
. - 玩家已获得
backpacks.keepondeath
许可。 - 另一个插件可以防止背包通过
CanDropBackpack
挂钩掉落。竞技场插件通常会为竞技场中的玩家执行此操作。
如何将背包按钮移到快捷栏的左侧?
"GUI Button Position"
将插件配置部分替换为以下内容。
"GUI Button Position": {
"Anchors Min": "0.5 0.0",
"Anchors Max": "0.5 0.0",
"Offsets Min": "-265 18",
"Offsets Max": "-205 78"
}
开发者API
API_GetBackpackContainer
ItemContainer API_GetBackpackContainer(ulong backpackOwnerID)
ItemContainer
返回对玩家背包底层的引用。null
如果玩家基本上没有背包(没有数据文件并且内存中没有背包),则返回。
笔记:
- 如果容器实体不存在,这将创建它。这会增加服务器的负载,因此建议仅在其他 API 方法不能满足您的需求时才使用此 API。例如,如果您只想知道玩家背包中物品的数量,您可以使用
API_GetBackpackItemAmount
which来计算物品数量,而无需创建容器。 - 您应该避免缓存容器,因为多个事件可能会导致背包的底层容器被替换或删除,这将使缓存的引用变得无用。
API_获取背包物品金额
int API_GetBackpackItemAmount(ulong backpackOwnerID, int itemId, ulong skinId = 0)
返回玩家背包中给定物品的数量。0
如果玩家没有背包则返回。该 API 的性能更高,API_GetBackpackContainer
因为它不需要创建背包容器。
API_DropBackpack
DroppedItemContainer API_DropBackpack(BasePlayer player, List<DroppedItemContainer> collect = null)
将玩家的背包放在当前位置。例如,这可以用于仅在玩家死在 PvP 区域时掉落玩家的背包。
如果collect
提供了列表,则背包的每个掉落容器都将添加到该列表中。如果背包有多个页面,这非常有用。
注意:这故意忽略玩家的backpacks.keepondeath
权限,以便为其他插件提供最大的灵活性,因此建议其他插件提供类似的权限以允许豁免。
API_EraseBackpack
void API_EraseBackpack(ulong backpackOwnerID)
擦除特定玩家背包中的内容。
注意:这不能被CanEraseBackpack
钩子阻挡。
API_GetBackpackOwnerId
ulong API_GetBackpackOwnerId(ItemContainer container)
- 如果是背包,则返回背包所有者的 Steam ID
ItemContainer
。 0
如果ItemContainer
不是背包则返回。
API_获取现有背包
Dictionary<ulong, ItemContainer> API_GetExistingBackpacks()
返回缓存在插件内存中的所有背包容器,以背包所有者的 Steam ID 为键。这最初是为了让物品清理插件可以确定哪些物品在背包中以便忽略它们。然而,从 Backpacks v3.7.0 开始,如果所有项目清理插件验证容器具有有效的entityOwner
.
开发者挂钩
可以打开背包
string CanOpenBackpack(BasePlayer player, ulong backpackOwnerID)
- 当玩家尝试打开背包时调用。
- 当收集模式尝试自动将物品放入背包时调用。结果按背包每帧进行缓存,以降低性能成本。
- 当物品检索器插件尝试自动从玩家的背包中获取物品时调用。结果按背包每帧进行缓存,以降低性能成本。
返回 astring
将阻止该操作。如果尝试打开背包,该字符串将作为聊天消息发送给玩家。
背包打开时
void OnBackpackOpened(BasePlayer player, ulong backpackOwnerID, ItemContainer backpackContainer)
- 当玩家成功打开背包时调用。
- 无退货行为。
背包关闭时
void OnBackpackClosed(BasePlayer player, ulong backpackOwnerID, ItemContainer backpackContainer)
- 当玩家关闭背包时调用。
- 无退货行为。
可以背包接受物品
bool CanBackpackAcceptItem(ulong backpackOwnerID, ItemContainer backpackContainer, Item item)
- 当玩家尝试将物品移入背包时调用。
- 返回
false
可防止物品被移动。
CanDrop背包
bool CanDropBackpack(ulong backpackOwnerID, Vector3 position)
"Drop on Death (true/false)"
当选项设置为 时玩家死亡时调用true
。- 返回
false
可防止背包掉落。
可以擦除背包
bool CanEraseBackpack(ulong backpackOwnerID)
"Erase on Death (true/false)"
当选项设置为 时玩家死亡时调用true
。- 返回
false
可以防止背包被擦除。