战利品箱物品

战利品箱物品

为Hytale添加沉浸式战利品箱物品,采用实体化、无指令系统,并支持热重载JSON配置,带来终极服务器沉浸体验!

游戏玩法

Lootbox Items

注意:兼容 Update 3

面向沉浸式体验的 Hytale 服务器奖励系统。

告别通过文本菜单和余额管理奖励的方式。本模组将战利品箱添加为真实、实体的物品,存在于你的世界中,保留了 Hytale 的幻想沉浸感。


为什么要选择 Lootbox Items?

  • 真正的沉浸感: 不再需要 /openbox 指令。战利品箱是可以被玩家携带、丢弃、交易或在激烈战斗中丢失的实体物品。
  • 无限兼容: 由于它们是物品,因此无需额外配置即可与任何其他模组配合使用。使用标准物品 ID 将其添加到怪物掉落列表、任务奖励或隐藏地牢宝箱中。
  • 完全掌控: 轻松创建自定义战利品箱类型。通过简单的配置文件,完全配置掉落列表、数量和稀有度几率。
  • 零停机更新: 即时更新你的掉落表。使用热重载指令应用更改,无需停止服务器。
  • 管理员友好: 使用标准 /give 指令发放奖励,或轻松将其整合到服务器的现有经济系统中。

快速入门(基础)

Lootbox Items 预装了 5 种默认战利品箱:普通、罕见、稀有、史诗和传奇。以下是在 60 秒内设置第一个奖励表的方法:

分步设置

  1. 找到物品: 在创造模式下,按 Tab 键并在物品栏中搜索“lootbox”。你将看到 5 种默认战利品箱,拿起其中任意一个。
  2. 初始化箱子: 使用手中的物品。游戏中将出现一条消息,提示该战利品箱尚未配置。
  3. 定位配置文件: 导航到服务器的 mods/LootboxItems 文件夹。你会看到一个以战利品箱命名的新 JSON 文件(例如 lootbox_common.json)。
    • 注意:如果文件夹或文件尚未出现,只需运行 /lootboxadmin save 指令强制保存即可。
  4. 配置奖励: 打开 JSON 文件,添加你想要的物品、数量和掉落几率。完成后保存文件。
  5. 应用更改: 运行指令 /lootboxadmin reload 即可立即将奖励加载到游戏中。(请参阅“简单的 JSON 配置”)

就是这样! 你的战利品箱现在已激活,可以作为实体奖励分发给玩家。


管理员指令

  • /lootboxadmin save – 持久化当前设置,并为新物品手动生成任何缺失的 .json 文件。(需要权限 lootboxitems.admin
  • /lootboxadmin reload热重载。 立即将你的 .json 更改应用到实时游戏环境。(需要权限 lootboxitems.admin

简单的 JSON 配置

精确调整你的经济系统。定义哪些物品掉落、它们的数量范围以及特定概率:

{
  "rewards": [
    {
      "itemId": "Ore_Copper",
      "minQuantity": 5,
      "maxQuantity": 15,
      "chance": 80.0
    },
    {
      "itemId": "Ore_Iron",
      "minQuantity": 1,
      "maxQuantity": 3,
      "chance": 20.0
    }
  ]
}

为确保 JSON 在重载前有效,你可以使用在线的“JSON 验证器”。


模组自带战利品箱的建议 JSON 配置

lootbox_common.json

{
  "rewards": [
    { "itemId": "Food_Fish_Raw", "minQuantity": 2, "maxQuantity": 5, "chance": 14.0 },
    { "itemId": "Plant_Fruit_Apple", "minQuantity": 2, "maxQuantity": 6, "chance": 13.0 },
    { "itemId": "Bandage_Crude", "minQuantity": 1, "maxQuantity": 3, "chance": 13.0 },
    { "itemId": "Rubble_Stone", "minQuantity": 1, "maxQuantity": 5, "chance": 15.0 },
    { "itemId": "Ingredient_Stick", "minQuantity": 5, "maxQuantity": 15, "chance": 15.0 },
    { "itemId": "Ingredient_Hide_Light", "minQuantity": 1, "maxQuantity": 3, "chance": 15.0 },
    { "itemId": "Ore_Iron", "minQuantity": 1, "maxQuantity": 3, "chance": 15.0 }
  ]
}

lootbox_uncommon.json

{
  "rewards": [
    { "itemId": "Food_Bread", "minQuantity": 2, "maxQuantity": 3, "chance": 20.0 },
    { "itemId": "Potion_Antidote", "minQuantity": 1, "maxQuantity": 1, "chance": 20.0 },
    { "itemId": "Food_Kebab_Fruit", "minQuantity": 2, "maxQuantity": 3, "chance": 30.0 },
    { "itemId": "Ingredient_Hide_Medium", "minQuantity": 1, "maxQuantity": 2, "chance": 15.0 },
    { "itemId": "Ore_Thorium", "minQuantity": 1, "maxQuantity": 2, "chance": 15.0 }
  ]
}

lootbox_rare.json

{
  "rewards": [
    { "itemId": "Food_Kebab_Mushroom", "minQuantity": 3, "maxQuantity": 5, "chance": 30.0 },
    { "itemId": "Potion_Stamina_Lesser", "minQuantity": 1, "maxQuantity": 2, "chance": 20.0 },
    { "itemId": "Potion_Health_Lesser", "minQuantity": 1, "maxQuantity": 1, "chance": 20.0 },
    { "itemId": "Ingredient_Hide_Heavy", "minQuantity": 1, "maxQuantity": 1, "chance": 15.0 },
    { "itemId": "Ore_Cobalt", "minQuantity": 1, "maxQuantity": 1, "chance": 15.0 }
  ]
}

lootbox_epic.json

{
  "rewards": [
    { "itemId": "Food_Salad_Caesar", "minQuantity": 2, "maxQuantity": 3, "chance": 30.0 },
    { "itemId": "Potion_Stamina_Greater", "minQuantity": 1, "maxQuantity": 1, "chance": 20.0 },
    { "itemId": "Potion_Health_Greater", "minQuantity": 1, "maxQuantity": 1, "chance": 20.0 },
    { "itemId": "Ingredient_Hide_Heavy", "minQuantity": 2, "maxQuantity": 3, "chance": 15.0 },
    { "itemId": "Ore_Adamantite", "minQuantity": 1, "maxQuantity": 1, "chance": 15.0 }
  ]
}

lootbox_legendary.json

{
  "rewards": [
    { "itemId": "Food_Pie_Apple", "minQuantity": 2, "maxQuantity": 5, "chance": 30.0 },
    { "itemId": "Potion_Stamina_Greater", "minQuantity": 1, "maxQuantity": 2, "chance": 20.0 },
    { "itemId": "Potion_Health_Greater", "minQuantity": 1, "maxQuantity": 2, "chance": 20.0 },
    { "itemId": "Ingredient_Hide_Storm", "minQuantity": 1, "maxQuantity": 1, "chance": 15.0 },
    { "itemId": "Ore_Mithril", "minQuantity": 1, "maxQuantity": 1, "chance": 15.0 }
  ]
}

高级用法:自定义战利品箱

想创建一个“龙之宝库”或“隐藏的海盗藏匿点”?使用 Hytale Asset Editor,你可以创建无限数量的独特战利品箱物品。按照以下步骤构建你的战利品箱:

分步创建

  1. 打开 Asset Editor: 访问 Hytale Asset Editor,并确保你的模组包已激活(或创建一个新的模组包)。
  2. 创建一个新物品: 导航到 Item/Item。在文件夹内右键单击,选择 “Create Item”
  3. 定义 ID:Unique Asset ID 字段中,输入你的自定义名称(例如 Lootbox_Epic_Weapons)。
    • 注意:此 ID 将成为你的 .json 配置文件名,并用于 /give 指令。
  4. 使用模板:“Copy Asset” 下,搜索 Dailoss:LootboxItems 并选择一个默认战利品箱作为模板。点击 Create
  5. 配置交互(至关重要):
    • 在 Item Editor 中,找到 Interactions 对象。
    • 定位 ItemToRemove 字段。
    • 将其更改为你的新 ItemID(例如 Lootbox_Epic_Weapons)。
      • 重要提示: 如果跳过此步骤,模组将消耗玩家物品栏中的错误物品。(未来更新将自动化此步骤!)
  6. 自定义(可选): 你拥有完全的创作自由!现在你可以更改 图标、模型、纹理、名称和描述。你甚至可以更改交互类型,以更好地适应服务器的主题。
  7. 生成与配置: 保存后,按照 快速入门(基础) 的步骤:在游戏中使用该物品,在 mods/LootboxItems 中找到新生成的 JSON,并定义你的奖励。

故障排除与常见问题

问:我使用了物品,但 mods/LootboxItems 文件夹中没有出现 JSON 文件。发生了什么? 答: 这可能取决于服务器的文件权限。只需在游戏中运行指令 /lootboxadmin save。这会强制模组检查所有现有的战利品箱物品,并立即生成对应的配置文件。

问:我编辑了 JSON,但游戏中的奖励没有改变。为什么? 答: 你必须告知服务器读取新数据。运行指令 /lootboxadmin reload。你应该会在聊天中看到一条确认消息,通知你配置已更新。

问:我可以用这些作为其他模组的奖励吗? 答: 当然可以。由于它们是标准物品,你可以在任何其他模组的掉落表、NPC 任务奖励或商店系统中使用它们的 ItemId(例如 Lootbox_Legendary)。

问:我自定义的战利品箱打开了,但它没有从我的物品栏中消失。 答: 检查 Hytale Asset Editor 中的 ItemToRemove 字段。如果此 ID 与你新物品的 Unique Asset ID 不完全匹配,模组将不知道使用后应该消耗哪个物品。


未来改进

  • 自动消耗: 自动化 ItemToRemove 的要求,使自定义物品无需手动链接即可即时生效。
  • 游戏内反馈: 改进开箱时的视觉效果和音效。