战利品表和堆栈大小GUI 2.1.16
关于战利品表和堆栈大小 GUI
告别配置和数据文件。这个插件让你可以直接在自定义 UI 上编辑(几乎)每个可掠夺对象的战利品。它还包括一个图形堆栈大小编辑器,因此非常适合不熟悉编辑配置文件的任何人。
请勿与任何其他堆栈大小控制器或战利品插件结合使用。
2.1.16 版新增功能:
- 改进的项目搜索
您现在可以通过在搜索开头添加 h: 来搜索隐藏的项目(例如,搜索 h:cable 将显示默认隐藏的电缆隧道项目)。这在项目编辑器和堆栈大小控制器中都有效。 - 完全支持 CustomItemDefinitions
2.1.7 版本新增功能:直接刷新战利品
拥有 loottable.test 权限的玩家可以使用按钮直接刷新他们当前正在掠夺的宝箱中的战利品。
特征:
- 用户友好的 GUI – 无需编辑配置文件
- 游戏中每个预制件的战利品配置
- 堆栈大小控制器支持每个预制件的单独堆栈大小
- 支持自定义项目
- 支持第三方插件
- 完全向后兼容版本 1.x.x
- 每个预制件都包含默认配置
- 冶炼速度、回收机速度和效率的配置
- 空投补给配置
支持的预制件:
- 板条箱、桶
- NPC
- 树木、矿石、动物尸体
- 挖掘机、采石场
- 圣诞礼物、彩蛋、战利品袋
- 大麻、玉米等收藏品。
附加配置:
- 冶炼速度
- 补给空投
- 回收机速度/效率
命令:
loottable - Open the Loottable UI loottable reload - Manually refresh loot loottable remove_dlc_items - Remove all DLC items from your loot configs. This action can not be undone
许可:
loottable.edit - Required to use the Loottable UI
所需的依赖项(仅限氧化物):
图片库:https://umod.org/plugins/image-library
翻译:
该插件完全支持翻译。开箱即用,仅包含英语。要翻译项目名称,需要插件 https://umod.org/plugins/rust-translation-api。英文翻译位于 /oxide/lang/en/Loottable.json
对于开发人员:
战利品 API:
开发人员可以使用 Loot Api 为自定义 NPC 或其他与插件相关的战利品注册战利品配置文件。
强烈建议使用提供的包装器来访问 API。还包括文档:
https://gist.github.com/TheKiiiing/53a37e8bbb48d8a24c8e8b21b9da37ac
Loot Api 示例:
// This example uses the non-static version of the Loot Api private LoottableApi loottableApi; void OnServerInitialized() { loottableApi = new LoottableApi(this); timer.In(5f, () => { loottableApi.ClearPresets(); loottableApi.CreatePresetCategory("Crates"); loottableApi.CreatePreset("c_locked", "Locked Crate", "crate_hackable"); loottableApi.CreatePreset("c_elite", "Elite Crate", "crate_elite"); loottableApi.CreatePreset("c_military", "Military Crate", "crate_military"); loottableApi.CreatePreset("c_normal", "Normal Crate", "crate_normal"); loottableApi.CreatePresetCategory("NPCs"); loottableApi.CreatePreset(true, "npc_cargo", "Cargo Ship NPC", "npc_militunnel"); loottableApi.CreatePreset(true, "npc_control", "Control Center NPC", "npc_militunnel"); }); } void SpawnNpc() { // Spawn NPC here ScientistNPC npc; // Assign a loot preset to the NPC loottableApi.AssignPreset(scientist, "npc_control"); } void SpawnCrate() { // Spawn crate here LootContainer crate; // Assign a preset to the crate if (loottableApi.AssignPreset(container, "c_locked")) { // The container has been filled with loot return; } else { // The container is not handled by Loottable // Default loot logic goes here } }
生成的配置页面将如下所示:
自定义项目 API:
开发人员可以使用自定义项目 API 将自定义项目添加到可锁定项目列表中。如果项目被标记为持久性,它将保留在自定义项目列表中,直到被 ClearCustomItems 删除。所有非持久性项目将在卸载注册它们的插件后被删除。
(void) AddCustomItem(Plugin plugin, int itemId, ulong skinId) (void) AddCustomItem(Plugin plugin, int itemId, ulong skinId, bool persistent) //(v1.0.27 or higher) (void) AddCustomItem(Plugin plugin, int itemId, ulong skinId, string customName) (void) AddCustomItem(Plugin plugin, int itemId, ulong skinId, string customName, bool persistent) //(v1.0.27 or higher) (void) ClearCustomItems(Plugin plugin) //(v1.0.27 or higher)
钩:
(object) OnContainerPopulate(LootContainer container)
每次战利品容器即将装满战利品时,都会调用此钩子。返回非空值可防止插件将战利品生成到该板条箱中。
(object) OnCorpsePopulate(LootableCorpse corpse)
每次 NPC 尸体即将装满战利品时都会调用此钩子。返回非空值可以防止插件在该尸体中生成战利品。
(object) OnCustomAirdrop(SupplySignal signal)
每次即将交付定制补给品时都会调用此钩子。返回非空值将取消自定义补给品投放。
版本 1 的过时文档:
1.0.27 版新增功能:
现在可以直接在 GUI 中创建和编辑自定义项目。可以从任何现有项创建它们,并在“项选择”菜单中进行修改
您现在可以创建和加载配置的备份。命令(F1 或服务器控制台):
loottable.backup load <name> - Load backup with the given name from the backups folder (will wipe your current configuration) loottable.backup create <name> - Create backup of everything with the given name
备份将在 data/Loottable/backups 文件夹中创建。要加载备份,备份文件需要存在于该文件夹中。在游戏内控制台中创建备份时,需要权限 loottable.debug。
重要提示:请勿从您不信任的源加载备份,它们可能会对您的服务器造成损害
1.0.16 版新增功能:
定制项目:
现在,您可以将其他插件使用的自定义物品直接添加到您的战利品表中。其他插件可以使用 api 注册这些项目(下面的文档)。
截图:
板条箱及其当前战利品表概述
堆栈大小编辑器
命令:
loottable - Open the editor loottable refresh - Manually refresh crate loot loottable flags - List available flags (explained below) loottable flags <name> <1|0> - Enable / disable a certain flag loottable reload_vanilla_profiles - Manually re-download vanilla loot profiles (only for debuging)
许可:
loottable.edit - Required to use the editor
标志:
编辑器中有用于禁用某些限制的标志。仅在确实需要时才启用这些标志,因为它们可能会导致编辑器出现意外行为。目前有 3 个标志可用:
调试 如果启用,则 调试(Debug) 标志将提供有关编辑器中错误和其他作的更多详细信息。除非您希望您的主机充满垃圾邮件,否则不要启用此标志。
UnlockGatherMultiplier 允许您使用小于 1 且高于 1000 的 gahter 乘数。请注意,在某些情况下,乘数小于 1 可能会导致意外结果。
禁用项目限制 最安全的标志可能是 DisableItemLimit,因为它只允许您在编辑器中设置堆栈大小和所有其他项目数量,最高可达 2,147,483,647,这是 32 位整数的最大可能值。
UnlockFurnaceMultiplier 允许您使用任何值作为熔炉速度乘数。除非你知道自己在做什么,否则不要启用此标志,因为 0.1 到 100 之间的默认值范围应该涵盖大多数用例,较大的值可能会影响服务器性能。
UnlockItemMultiplier 在乘以战利品表时解锁乘数。
DisableStackingHooks 将禁用所有与堆叠相关的钩子。如果您在堆叠项目时遇到问题,请启用。
RefreshLootOnExit 控制在关闭编辑器或重新加载插件后是否刷新所有 crate。仅在测试中启用此功能,实体可能会增加。
有关启用标志的更多信息,请参阅命令部分。
香草配置:
从 1.0.7 版本开始,大多数板条箱和 NPC 都有可用的原版战利品配置文件。这些配置文件可以使用编辑器顶部中央的“加载默认战利品表”按钮加载。
免責聲明:
编辑器中的原版战利品配置文件可能与游戏的原版战利品分布不完全匹配,因为它使用与 Rust 完全不同的战利品分配系统。这些配置文件反而充当自定义战利品配置文件的参考点。
对 Carbon 用户很重要:
为了使此插件能够与碳一起使用,需要启用 Harmony 引用。这可以通过以下命令完成:
c.harmonyreference 1
所需的依赖项(仅限氧化物):
图片库:https://umod.org/plugins/image-library
自定义项目 API:
将自定义项添加到项列表。如果某个项目被标记为持久性,它将保留在自定义项目列表中,直到被 ClearCustomItems 删除。所有非持久性项目将在卸载注册它们的插件后被删除。
(void) AddCustomItem(Plugin plugin, int itemId, ulong skinId) (void) AddCustomItem(Plugin plugin, int itemId, ulong skinId, bool persistent) //(v1.0.27 or higher) (void) AddCustomItem(Plugin plugin, int itemId, ulong skinId, string customName) (void) AddCustomItem(Plugin plugin, int itemId, ulong skinId, string customName, bool persistent) //(v1.0.27 or higher) (void) ClearCustomItems(Plugin plugin) //(v1.0.27 or higher)
例:
建议稍微延迟调用以确保加载 Loottable
private void Init() { timer.In(1f, () => { Loottable?.Call("AddCustomItem", this, -946369541, 2664651800, "High Quality Fuel"); }); }
钩:
(object) OnContainerPopulate(LootContainer container)
每次战利品容器即将装满战利品时,都会调用此钩子。返回非空值可防止插件将战利品生成到该板条箱中。
(object) OnCorpsePopulate(LootableCorpse corpse)
每次 NPC 尸体即将装满战利品时都会调用此钩子。返回非空值可以防止插件在该尸体中生成战利品。
(object) OnCustomAirdrop(SupplySignal signal)
每次即将交付定制补给品时都会调用此钩子。返回非空值将取消自定义补给品投放。
暂无评论内容