原创地址uMod – WhiteThunder 的背包
特征
允许玩家拥有背包,为他们提供额外的库存空间。
- 每个玩家的可自定义容量(使用权限)
- 选择在死亡时掉落或擦除背包内容
- 可选择在地图上清除背包内容
- 可选商品限制
- 用于访问背包的可选 GUI 按钮
- 可选择将新获得的物品自动收集到您的背包中
- 可以选择从背包中自动检索物品以进行制作、建造等。
注意:要绑定密钥以打开背包,请在 F1 客户端控制台中使用:。例如。bind <key> backpack
bind b backpack
快速开始
允许玩家打开背包
要允许所有玩家使用背包,请运行以下命令。
o.grant group default backpacks.use
这将允许所有玩家使用 chat 命令或 console 命令打开他们的背包。默认情况下,所有背包都有 6 个容量槽(1 行),但这可以在配置中和分配权限来更改。/backpack
backpack
允许玩家使用 GUI 按钮
要允许所有玩家查看背包 GUI 按钮,请运行以下命令。
o.grant group default backpacks.gui
玩家可以单击该按钮(在他们的腰带旁边)来打开和关闭他们的背包。他们还可以运行 chat 命令来隐藏或显示按钮。如果您想默认禁用该按钮,以便玩家必须显式启用它,您可以在配置中执行此作。/backpackgui
或者,不要在此插件中启用 GUI 按钮,而是考虑使用 Backpack Button 插件以获得更高级的功能。
命令
backpack
/backpack.open
— 打开你自己的背包。需要权限。如果背包已经打开,这将前进到下一页,如果没有更多页面,则会关闭玩家物品栏。backpacks.use
backpack.fetch <item short name or id> <amount>
— 从背包中取出物品。backpackgui
— 切换是否可以看到 backpack GUI 按钮。backpack.setgathermode <All|Existing|Off> <optional page number>
— 为指定的 backpack 页面设置 gather 模式。如果未指定页码,则适用于第一页。此命令可用于通过键绑定快速更改收集模式,而无需打开背包。注意:如果您希望通过聊天而不是控制台持续接收有关此命令的反馈,则应将其绑定为 like 而不是 。bind <key> chat.say "/backpack.setgathermode All"
bind <key> backpack.setgathermode All
管理员命令
viewbackpack <name or steam id>
— 打开其他玩家的背包(需要权限)backpacks.admin
backpack.addsize <name or steam id> <amount>
— 尝试将指定玩家的背包大小更改指定的数量,而不超出玩家的大小配置文件的范围。这可用于通过提供负数来减少容量。需要在配置中启用实验性动态大小功能。backpack.setsize <name or steam id> <amount>
— 尝试将玩家背包的大小设置为指定数量,而不超出玩家的大小配置文件的边界。需要在配置中启用实验性动态大小功能。
服务器命令
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
backpack.addsize
backpack.setsize
backpacks.admin.protected
— 保护您的背包不被其他管理员通过命令查看。viewbackpack
backpacks.gui
— 需要查看 GUI 按钮。backpacks.fetch
— 需要使用命令。backpack.fetch
backpacks.keepondeath
— 免除您死后背包被擦除或掉落的危险。backpacks.gather
— 允许您为每个背包页面启用收集模式,该模式会自动将新获得的库存物品转移到您的背包中。- 注意:当您断开与服务器的连接并在一段时间后重新连接时,除非您至少打开一次背包,否则不会激活收集模式。
backpacks.retrieve
— 允许您为每个 backpack 页面启用检索模式。启用检索模式后,您可以使用指定背包页面中的物品进行建造、制作等。需要 Item Retriever 插件。- 注意:当您断开与服务器的连接并在一段时间后重新连接时,只有在您至少打开背包一次后才会激活取回模式。此外,重新加载武器弹药、切换武器弹药、从自动售货机购买物品以及从 NPC 供应商处购买车辆将无法从页面中提取物品,直到您在(重新)连接到服务器后至少访问一次这些特定页面。
大小权限
如果您想为特定玩家或组授予比默认 ( -> ) 更多的背包容量,那么您可以通过权限来实现。-> 配置选项中存在的每个数字都会导致插件生成 format 的权限,该权限为相应的播放器或组分配了该大小的容量。例如,将分配 18 个容量槽(3 行)。Backpack size
Default size
Backpack size
Permission sizes
backpacks.size.<number>
backpacks.size.18
以下权限随插件的默认配置一起提供。
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
注意:如果向玩家授予了多个大小权限,则最高权限将适用。
动态大小(高级/实验性)
如果您想允许玩家升级他们的背包尺寸,可以通过上述权限来实现,只需在玩家购买或执行作以获得更大的尺寸时授予更高的权限(您负责在适当的时候使用其他插件授予和/或撤销权限)。但是,使用权限来确定背包大小并不适合所有类型的服务器,这会导致下面的一些示例问题。backpacks.size.*
- 如果您希望在每次擦除开始时重置背包大小,则需要另一个插件来重置权限。
- 如果你想允许玩家以多种方式增加他们的背包大小,例如通过技能树、通过商店购买、通过玩家之间找到和/或交易的消耗品,那么这种组合是不可行的,因为每个升级源都可以覆盖其他升级源,或者如果授予的权限对应于比玩家当前拥有的更小的大小,则没有任何效果。
动态背包大小 尝试解决这些问题。使用动态大小,您可以定义大小配置文件,用于声明初始大小和最大大小。您可以通过权限将大小配置文件分配给玩家。在每次擦除开始时,每个玩家的背包大小都会选择性地重置为其配置文件的初始大小。在整个擦除过程中,玩家可以从各种来源(即其他插件)获得大小升级,直到达到其个人资料中声明的最大大小。例如,如果玩家的体型档案声明初始体型为 6,最大体型 48,则玩家可以逐渐获得升级,直到达到 48 体型,此时,背包无法再升级。
要开始使用动态背包大小,请将 -> config 选项设置为并重新加载插件。然后,授予以下权限之一(或您在配置中定义的新权限)Dynamic Size (EXPERIMENTAL)
Enabled
true
以下权限随插件的默认配置一起提供。可以在配置中定义其他大小配置文件,这将生成其他权限。
backpacks.size.profile.6-48
— 6 至 48 个插槽backpacks.size.profile.6-96
— 6 至 96 个插槽backpacks.size.profile.6-144
— 6 至 144 个插槽
重要说明:
- 如果玩家被授予多个权限,~~最后一个将适用,根据配置中的配置文件顺序。~~ 初始大小和最大大小将是他们有权访问的所有配置文件中的最大值(在 v3.14.0 中更改)。
backpacks.size.profile.*
- 如果玩家被授予任何权限,它将覆盖配置中的默认背包大小,以及他们被授予的任何权限,因为大小配置文件优先于所有其他配置/权限。
backpacks.size.profile.*
backpacks.size.<number>
- 该插件会跟踪玩家收到的奖金大小,而不是确切的大小。这意味着您通常可以将播放器从一个配置文件切换到另一个配置文件,而不会丢失获得的容量。例如,如果玩家从配置文件 6-48 开始,将容量升级到 24 (6 18),然后获得对配置文件 48-96 的权限,则他们的容量将为 66 (48 18)。
- 此插件目前不提供升级背包容量的内置功能,因此必须为此类用例使用其他插件。插件开发人员可以参考下面的 API 文档,了解有关如何查询和修改背包容量的详细信息。值得注意的 API 方法名称如下。
API_IsDynamicCapacityEnabled
API_GetBackpackCapacity
API_GetBackpackInitialCapacity
API_GetBackpackMaxCapacity
API_AddBackpackCapacity
API_SetBackpackCapacity
- 其他插件可以使用 and 命令,但根据您的确切设置,这可能允许玩家在已经达到最大容量时有效地浪费资源来购买升级。建议使用 API 进行更精确的集成,因为其他插件可以查询 Backpacks 插件,以确定是否可以升级,然后再向玩家收费。
backpack.addsize
backpack.setsize
项目限制权限
如果您想允许特定玩家或组的背包接受与默认 ( -> ) 不同的物品,那么您可以通过权限来实现。在 -> config 选项中定义的每个规则集都将导致插件生成格式为 .授予该权限会将该规则集分配给相应的玩家或组。Item restrictions
Default ruleset
Item restrictions
Rulesets by permission
backpacks.restrictions.<name>
以下权限随插件的默认配置一起提供。可以在配置中定义其他项目限制规则集,这将生成额外的权限。
backpacks.restrictions.allowall
— 允许玩家背包中的所有物品。仅当已自定义默认规则集以限制项目时才有用。
注意:如果向玩家授予了多个权限,则根据配置中的规则集顺序,将应用最后一个权限。backpacks.restrictions.*
Keep on wipe 权限
如果您想允许特定玩家或组的背包在擦除期间保留与默认 ( > ) 不同的物品,那么您可以通过权限来实现。> config 选项中定义的每个规则集都将导致插件生成格式为 .授予该权限会将该规则集分配给相应的玩家或组。Clear on wipe
Default ruleset
Clear on wipe
Rulesets by permission
backpacks.keeponwipe.<name>
以下权限随插件的默认配置一起提供。可以在配置中定义额外的保持擦除规则集,这将产生额外的权限。
backpacks.keeponwipe.all
— 允许在擦除后保留所有项目。
注意:如果向玩家授予了多个权限,则根据配置中的规则集顺序,将应用最后一个权限。backpacks.keeponwipe.*
旧版权限
为了向后兼容,插件仍然支持以下权限,但建议您改用较新的权限。
backpacks.use.1 - 8
— 类似,但分配指定的行数而不是槽数。backpacks.size.*
- 这些权限将在设置 > config 选项时生成,如果您当时设置了 config 选项,则在从插件的先前版本升级时,该选项将自动添加到您的配置中。
"Backpack size"
"Enable legacy backpacks.use.1-8 row permissions": true
"Backpack Size (1-8 Rows)"
- 建议的替代方法: through (存在于默认配置中,但可能不存在,具体取决于您修改配置的方式)
backpacks.size.6
backpacks.size.48
- 这些权限将在设置 > config 选项时生成,如果您当时设置了 config 选项,则在从插件的先前版本升级时,该选项将自动添加到您的配置中。
backpacks.noblacklist
— 免除玩家的物品限制,允许将任何物品放入他们的背包中。- 此权限在设置 > config 选项时存在,如果您当时设置了 or config 选项,则从插件的先前版本升级时,该选项将自动添加到您的配置中。
"Item restrictions"
"Enable legacy noblacklist permission": true
"Use Whitelist (true/false)": true
"Use Blacklist (true/false)": true
- 建议的替代方法:(存在于默认配置中,但可能不存在,具体取决于您修改配置的方式)
backpacks.restrictions.allowall
- 此权限在设置 > config 选项时存在,如果您当时设置了 or config 选项,则从插件的先前版本升级时,该选项将自动添加到您的配置中。
backpacks.keeponwipe
— 免除玩家在地图擦除时擦除其背包内容。- 此权限在设置 > config 选项时存在,如果您在当时设置了 config 选项,则在从插件的先前版本升级时,该选项将自动添加到您的配置中。
"Clear on wipe"
"Enable legacy keeponwipe permission": true
"Clear Backpacks on Map-Wipe (true/false)": true
- 建议的替代方法:(存在于默认配置中,但可能不存在,具体取决于您修改配置的方式)
backpacks.keeponwipe.all
- 此权限在设置 > config 选项时存在,如果您在当时设置了 config 选项,则在从插件的先前版本升级时,该选项将自动添加到您的配置中。
配置
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
],
"Dynamic Size (EXPERIMENTAL)": {
"Enabled": false,
"Reset dynamic size on wipe": {
"Enabled": true
},
"Size profiles": [
{
"Permission suffix": "6-48",
"Initial size": 6,
"Max size": 48
},
{
"Permission suffix": "6-96",
"Initial size": 6,
"Max size": 96
},
{
"Permission suffix": "6-144",
"Initial size": 6,
"Max size": 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": 3050418770,
"Image": "",
"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,
"Max page buttons to show": 8
},
"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
(Default: ) — 确定具有权限的玩家的背包容量 (以槽为单位)。6
backpacks.use
- 注意:具有权限的玩家可能具有更大的容量。
backpacks.size.<number>
- 注意:具有权限的玩家可能具有不同的容量。
backpacks.size.profile.*
- 注意:具有权限的玩家可能具有更大的容量。
Max size per page
(Default: , Max: ) — 确定每个 Backpack 页面的容量 (以插槽为单位)。例如,如果您授予玩家背包容量,并将每页最大大小设置为 ,则他们的背包将有两个页面:一个页面具有容量,另一个页面具有容量。48
48
60
48
48
12
Enable legacy backpacks.use.1-8 row permissions
(true
或;Default: ) — 确定权限是否由插件注册。将插件升级到 3.9 时,如果您设置了 config 选项,则将自动启用此选项以实现向后兼容性。即使您是第一次安装插件,也有启用此选项的有效用例,例如,如果您使用另一个管理这些权限的插件。在撰写本文时,XPerience 和 Backpack Upgrader 插件都使用这些权限来允许玩家通过进度系统增加容量,但当您阅读本文时,情况可能已经发生了变化。false
false
backpacks.use.1-8
"Backpack Size (1-8 Rows)"
Permission sizes
— 此列表中的每个数字都会生成格式为 .向玩家或组授予该权限会为其 backpack 分配该数量的容量。如果您希望某些播放器的容量大于上述默认值,这将非常有用。注意:如果向玩家授予了多个大小权限,则最高权限将适用。backpacks.size.<number>
- 注意:对于具有权限的玩家,这些权限将被忽略。
backpacks.size.profile.*
- 注意:对于具有权限的玩家,这些权限将被忽略。
Dynamic Size (EXPERIMENTAL)
— 与其他插件集成的高级功能。注意:此功能在未来的更新中可能会发生变化。如果你喜欢这个功能的想法,请在 uMod 论坛上提供反馈(点击侧边栏上的“帮助”按钮访问 Backpacks 论坛)。Enabled
(true
或;默认值: ) — 启用动态大小时,意味着任何权限都将从配置中生成并生效。而 ,动态大小选项处于禁用状态,这意味着不会生成权限,如果之前已授予玩家,则权限将不起作用。false
false
true
backpacks.size.profile.*
false
backpacks.size.profile.*
Reset dynamic size on wipe
Enabled
(true
或;默认值: ) — While ,动态大小将在擦除时重置。这意味着所有使用动态大小的背包都将恢复为初始大小。false
true
true
Size profiles
— 此列表中的每个条目都定义了一个大小配置文件。当通过权限将尺寸配置文件分配给玩家时,该玩家的背包大小由配置文件决定,并覆盖配置中的默认背包大小以及已为玩家分配的任何权限。backpacks.size.<number>
Permission suffix
— 确定生成的 format 权限。backpacks.restrictions.<suffix>
Initial size
— 背包的初始大小。其他插件可以使用 API 来更改背包的大小,但不能低于此数量。擦除服务器时,大小会自动重置为此值。Max size
— 背包的最大尺寸。其他插件可以使用 API 将背包的大小增加到这个数量。
GUI 按钮
GUI Button
— 确定 GUI 按钮的显示,玩家可以单击该按钮来打开和关闭他们的背包。Enabled
(true
或;Default: ) — 确定是否启用 GUI 按钮。如果您不打算向任何播放器显示 GUI 按钮,请将此项设置为以提高性能。禁用此功能也将取消注册该命令,以便其他插件可以使用它。false
true
false
backpackgui
Enabled by default (for players with permission)
(true
或;Default: ) — 确定是否默认为新玩家显示 GUI 按钮(如果新玩家具有权限)。注意:如果玩家不同意您选择的默认值,可以使用该命令亲自打开/关闭它。false
true
backpacks.gui
backpackgui
Skin Id
(默认值: ) — 确定用于显示 GUI 按钮的外观 ID,作为 URL 的替代项。While ,这不起作用。注意:当皮肤图标下载到他们的计算机时,用户可能会短暂地看到马鞍包项目图标。3050418770
Image
0
Image
(默认值: ) — 确定要在 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"
容器 UI
Container UI
— 控制背包容器 UI 的显示。Show page buttons on container bar
(true
或;Default: ) — 确定页面按钮 (例如,1、2、3) 是显示在容器栏上还是显示在容器栏上方。默认情况下,它们显示在容器栏的上方,以便与 Sort Button 插件兼容。但是,如果你正在使用 Quick Sort 插件,并且希望每个 Backpack 页面允许 48 个容量槽,则可能需要启用此选项以将页面按钮向下移动。false
false
Max page buttons to show
— 确定一次可以显示的页面按钮 (例如,1、2、3) 的最大数量。当玩家的背包页数超过此处配置的页数时,将显示 additional 和 buttons。<
>
建议用于 Sort Button(默认):
建议用于快速排序:
商品限制
Item restrictions
Enabled
— 确定玩家背包是否受物品限制。设置为 to 以禁用所有玩家的物品限制。设置为 可应用以下规则集。注意: 无论这些设置如何,其他插件都可以阻止使用钩子将特定物品添加到背包中。false
true
CanBackpackAcceptItem
Enable legacy noblacklist permission
(true
或;Default: ) — 确定权限是否由插件注册。将插件升级到 v3.9 时,如果您设置了 or config 选项,则将自动启用此选项以实现向后兼容性。false
false
backpacks.noblacklist
"Use Whitelist (true/false)": true
"Use Blacklist (true/false)": true
Feedback effect
— 当玩家尝试将不允许的物品添加到其 backpack 时要播放的效果 prefab。设置为 可禁用该效果。""
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"]
- 如果某个项目位于不允许的类别中,则在 中指定了该项目的简称,或者在 中指定了该项目的皮肤 ID,则仍可能允许该项目。
Allowed item short names
Allowed skin IDs
- 允许的值:与 相同。
Allowed item categories
- 使用此选项的唯一正确方法是设置并使用此选项来指定要禁止的类别。
Allowed item short names
— 确定分配了此规则集的背包中允许使用哪些项目短名称,以及任何允许的项目类别和皮肤 ID。- 项目短名称的评估优先级高于项目类别,这意味着您可以使用此选项来允许不允许的类别中的项目。
Disallowed item short names
— Determines which item short names are disallowed in backpacks that are assigned this ruleset.- This option has no effect if is blank because that means no items are allowed.
Allowed item categories
- If an item has a disallowed short name, that item may still be allowed if it’s skin ID is specified in .
Allowed skin IDs
- This option has no effect if is blank because that means no items are allowed.
Allowed skin IDs
— Determines which item skin IDs are allowed in backpacks that are assigned this ruleset, in addition to any allowed item categories and short names.- 商品皮肤 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
- 注意: 要使此功能正常工作,必须安装 Oxide,并且必须在服务器首次使用新映射启动时加载插件。在极少数情况下,服务器所有者会犯一个错误,即在 Rust 更新后在没有安装 Oxide 或插件过期(例如,编译失败)的情况下启动他们的服务器,从而导致背包无法擦除。如果你犯了这个错误,建议你通过删除你的服务器保存文件并再次重启服务器来擦除你的服务器,因为其他依赖于检测地图擦除的插件也会受到影响。或者,您可以通过卸载插件、删除目录然后加载插件来手动擦除所有背包。
oxide/data/Backpacks
- 注意: 要使此功能正常工作,必须安装 Oxide,并且必须在服务器首次使用新映射启动时加载插件。在极少数情况下,服务器所有者会犯一个错误,即在 Rust 更新后在没有安装 Oxide 或插件过期(例如,编译失败)的情况下启动他们的服务器,从而导致背包无法擦除。如果你犯了这个错误,建议你通过删除你的服务器保存文件并再次重启服务器来擦除你的服务器,因为其他依赖于检测地图擦除的插件也会受到影响。或者,您可以通过卸载插件、删除目录然后加载插件来手动擦除所有背包。
Enable legacy keeponwipe permission
(true
或;Default: ) — 确定权限是否由插件注册。将插件升级到 v3.9 时,如果您设置了 config 选项,则将自动启用此选项以实现向后兼容性。该权限将被该权限取代。false
false
backpacks.keeponwipe
"Clear Backpacks on Map-Wipe (true/false)": true
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"]
- 如果某个项目位于不允许的类别中,则在 中指定了该项目的简称,或者在 中指定了该项目的皮肤 ID,则仍可能允许该项目。
Allowed item short names
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。- 商品皮肤 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
- 注意:即使禁用了掉落背包,其他插件(如 Raidable Bases)也可能会通过 API 强制掉落玩家的背包(如果配置为这样做)。
API_DropBackpack
- 注意:即使启用此选项,拥有该权限的玩家在死亡时也会保留他们的背包内容。
Erase on Death (true/false)
(默认: ) — While ,玩家的背包内容会在他们死亡时被擦除。在任何情况下都无法恢复已删除的背包内容。false
true
- 注意:即使启用此选项,拥有该权限的玩家在死亡时也会保留他们的背包内容。
backpacks.keepondeath
- 注意:即使启用此选项,拥有该权限的玩家在死亡时也会保留他们的背包内容。
Minimum Despawn Time (Seconds)
(Default: ) — 确定掉落的背包不会消失的最短时间(以秒为单位)。如果背包内容物中等稀有,由原版 Rust 决定,背包消失的时间可能比此持续时间更长。300.0
Softcore
— 确定软核模式的选项。Reclaim Fraction
(默认值: , Min: , Max: ) — 如果启用了死亡掉落,则确定当背包掉落时受保护的背包物品的百分比。例如,如果将其设置为 ,并且玩家死亡时背包中装有物品,则物品将保留在背包中,并且物品将被掉落。如果设置为 ,将丢弃所有项目。如果设置为 ,则不会丢弃任何项目。0.5
0.0
1.0
0.9
100
90
10
0.0
1.0
地方化
Backpacks
lang/en
de
常见问题
为什么玩家死亡时背包不掉落?
背包不会掉落的可能原因有三个。
- 配置选项为 。
"Drop on Death (true/false)"
false
- 玩家拥有权限。
backpacks.keepondeath
- 另一个插件阻止了背包通过钩子掉落。Arena 插件通常会为 Arena 中的玩家执行此作。
CanDropBackpack
如何将背包按钮移动到热键栏的左侧?
将 plugin configuration 的部分替换为以下内容。"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_IsDynamicCapacityEnabled
int API_IsDynamicCapacityEnabled()
如果在配置中启用了动态容量,则返回 ,否则返回 。这对于使用动态容量的插件很有用,因为它允许它们在服务器控制台中打印警告,通知管理员他们需要启用该配置选项才能使用插件提供的动态容量功能。true
false
API_GetBackpackCapacity
int API_GetBackpackCapacity(BasePlayer player)
int API_GetBackpackCapacityById(ulong playerID, string playerIDString)
返回玩家的当前背包容量。
API_GetBackpackInitialCapacity
int API_GetBackpackInitialCapacity(BasePlayer player)
返回玩家的初始/最小背包容量。如果未启用动态大小,或者玩家没有分配的大小配置文件,则返回值将只是玩家的当前背包容量。
API_GetBackpackMaxCapacity
int API_GetBackpackMaxCapacity(BasePlayer player)
返回玩家的最大背包容量。如果未启用动态大小,或者玩家没有分配的大小配置文件,则返回值将只是玩家的当前背包容量。
API_AddBackpackCapacity
int API_AddBackpackCapacity(BasePlayer player, int amount)
尝试将玩家的背包容量增加指定数量,而不超出玩家的大小配置文件定义的范围(即,由其权限决定)。负数可用于减少背包容量。如果播放器没有分配大小配置文件,则此作将不起作用。返回应用更改后玩家的背包容量。backpacks.size.profile.*
API_SetBackpackCapacity
int API_SetBackpackCapacity(BasePlayer player, int amount)
尝试将玩家的背包容量设置为指定数量,而不超出玩家的大小配置文件定义的范围(即,由他们的权限决定)。如果播放器没有分配大小配置文件,则此作将不起作用。返回应用更改后玩家的背包容量。backpacks.size.profile.*
API_GetBackpackItemAmount
int API_GetBackpackItemAmount(ulong backpackOwnerID, int itemId, ulong skinId = 0)
返回玩家背包中给定物品的数量。如果玩家没有背包,则返回。此 API 的性能更高,因为它不需要创建 backpack 容器。0
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_MutateBackpackItems
int API_MutateBackpackItems(ulong ownerId, Dictionary<string, object> itemQuery, Dictionary<string, object> mutationRequest)
查找并改变玩家背包中的物品。返回值是已更改的项目堆栈数。
ownerId
— 玩家背包的 Steam ID。itemQuery
— 描述要查找的项目。有关详细信息,请参阅下面的“项目查询”部分。mutationRequest
— 描述要应用的更改。支持 (int)、(ulong) 和 (string)。可根据要求添加更多参数。注意: 只能对等效的物品类型进行更改,例如将 Nomad 危险品套装更改为 Arctic 危险品套装,否则可能会产生不可预测的后果。"ItemId"
"SkinId"
"DisplayName"
ItemId
例:
int itemsReskinned = Backpacks.Call<int>("API_MutateBackpackItems", basePlayer.userID,
// Find items with where `item.info.itemid == 1234567890`
new Dictionary<string, object>{ ["ItemId"] = 1234567890 },
// Change `item.skin` to `9876543210`
new Dictionary<string, object>{ ["SkinId"] = 9876543210 }
);
basePlayer.ChatMessage($"{itemsReskinned} item stacks were reskinned in the backpack.");
API_GetExistingBackpacks (已弃用)
It is strongly advised that plugins do not use API_GetExistingBackpacks
because a backpack can have multiple containers if it has multiple pages, and can have virtual representations of containers that have not yet been accessed. If you think your plugin has a valid reason to access backpack containers, please open a support thread to discuss your use case.
Dictionary<ulong, ItemContainer> API_GetExistingBackpacks()
Returns all backpack containers that are cached in the plugin’s memory, keyed by the Steam IDs of the backpack owners. This was originally contributed so that item cleaner plugins could determine which items were in backpacks in order to ignore them. However, as of Backpacks v3.7.0, all item cleaner plugins should automatically be compatible.
API_GetBackpackContainer (DEPRECATED)
It is strongly advised that plugins do not use API_GetBackpackContainer
because a backpack can have multiple containers if it has multiple pages, and can have virtual representations of containers that have not yet been accessed. If you think your plugin has a valid reason to access backpack containers, please open a support thread to discuss your use case.
ItemContainer API_GetBackpackContainer(ulong backpackOwnerID)
Returns a reference to the underlying of a player’s backpack. Returns if the player essentially has no backpack (no data file and no backpack in-memory).ItemContainer
null
Notes:
- 如果容器实体不存在,这将创建容器实体。这可能会增加服务器的负载,因此建议仅在其他 API 方法无法满足您的需求时才使用此 API。例如,如果你只想知道玩家背包中某个物品的数量,你可以使用 which 来计算物品,而无需创建容器。
API_GetBackpackItemAmount
- 您应该避免缓存容器,因为多个事件可能会导致 Backpack 的底层容器被替换或删除,这将使缓存的引用变得无用。
项查询
多种 API 方法,包括支持商品查询。项查询是您感兴趣的项的抽象描述。每个 item 查询都是一个,并支持以下键。当项目查询具有多个参数时,只有当项目满足所有参数时,该项目才会被视为匹配项。API_MutateBackpackItems
Dictionary<string, object>
"BlueprintId"
: — 匹配等于指定值的项。例如,要查找 Auto Turret 蓝图,请为此参数提供 Auto Turret 项目 ID。int
item.blueprintTarget
"DisplayName"
: — 匹配等于此值的项目(不区分大小写)。string
item.name
"DataInt"
: — 匹配等于此值的项目。int
item.instanceData.DataInt
"FlagsContain"
: — 匹配位掩码包含所提供位掩码中所有位的项目。这可用于查找具有一个或多个标志的项目,而无需关心项目是否具有其他标志。Item.Flag
item.flags
"FlagsEqual"
: — 匹配等于此值的项目。这可用于查找完全具有您感兴趣的所有标志且没有其他标志的项目。Item.Flag
item.flags
"ItemDefinition"
: — 匹配等于此值的项目。替代 .ItemDefinition
item.info
"ItemId"
"ItemId"
: — 匹配等于此值的项目。替代 .int
item.info.itemid
"ItemDefinition"
"IgnoreItem"
: — 阻止匹配此特定项。Item
"MinCondition"
: — 匹配大于或等于此值的项目。如果项目不支持 condition(根据 ),则忽略此参数。float
item.conditionNormalized
item.info.condition.enabled
"RequireEmpty"
: — 匹配没有子内容(即 is 或 )的项目。例如,while ,带有附件的武器不会匹配,但没有附件的武器可以匹配。bool
item.contents?.itemList?.Count
0
null
true
"SkinId"
: — 匹配等于指定值的项。ulong
item.skin
物品查询的概念存在,因为 Backpacks 插件不一定使用给定玩家的背包或玩家背包的给定页面的实际物品或容器,除非绝对需要(例如,当玩家打开该页面时)。物品查询允许其他插件查询、修改甚至从背包中取出物品,而无需关心 Backpacks 插件的内部实现细节。
开发人员 Hook
CanOpenBackpack
object CanOpenBackpack(BasePlayer player, ulong backpackOwnerID)
- 当玩家尝试打开背包时调用。
- 当收集模式尝试将物品自动放入背包时调用。结果是每帧每个 backpack 缓存,以降低性能成本。
- 当 Item Retriever 插件尝试自动从玩家的背包中取出物品时调用。结果是每帧每个 backpack 缓存,以降低性能成本。
返回 或 a 将阻止该作。如果玩家尝试打开背包(而不是使用 gather 或 retrieve)并返回 a,则它将作为聊天消息发送给玩家。false
string
string
string
OnBackpackOpened
void OnBackpackOpened(BasePlayer player, ulong backpackOwnerID, ItemContainer backpackContainer)
- 当玩家成功打开背包时调用。
- 无 return 行为。
OnBackpackClosed
void OnBackpackClosed(BasePlayer player, ulong backpackOwnerID, ItemContainer backpackContainer)
- 当玩家关闭背包时调用。
- 无 return 行为。
CanBackpackAcceptItem
bool CanBackpackAcceptItem(ulong backpackOwnerID, ItemContainer backpackContainer, Item item)
- 当玩家尝试将物品移动到背包中时调用。
- 返回 (Return) 可阻止项目被移动。
false
CanDrop背包
bool CanDropBackpack(ulong backpackOwnerID, Vector3 position)
- 当玩家死亡且选项设置为 时调用 。
"Drop on Death (true/false)"
true
- 返回可防止背包掉落。
false
OnBackpackDropped
void OnBackpackDropped(ulong ownerId, List<DroppedItemContainer> droppedBackpackList)
- 在玩家的背包掉落后调用。
- 该列表包含所有掉落的背包容器。可能会掉落多个容器,具体取决于玩家背包中的物品数量。请注意,此列表是池化的,将在 hook 调用完成后立即清除,因此,如果您需要在 hook 调用后处理容器,则应将列表的内容复制到您控制的列表中。
List<DroppedItemContainer>
CanErase 背包
bool CanEraseBackpack(ulong backpackOwnerID)
- 当玩家死亡且选项设置为 时调用 。
"Erase on Death (true/false)"
true
- 返回可防止 Backpack 被擦除。
false
暂无评论内容