CS:2 战利品箱

CS:2 战利品箱

一个可配置的、受CS2启发的战利品箱系统,适用于使用KubeJS的Minecraft模组包。

CS2 Lootbox 是一个为 Minecraft 1.20.1 打造的 Forge 模组,专为想要一个可配置、受 CS2 启发的开箱系统 的整合包作者而设计,并由 KubeJS 驱动。

创建自定义箱子与配套钥匙,构建带权重的战利品表,配置 CS 风格的稀有度等级,添加传奇奖励和 StatTrak 风格的修饰符,并为每个箱子赋予其专属的 3D 模型、纹理、动画、音效与呈现效果。

特性

  • 受 CS2 启发的开箱界面。
  • 使用 GeckoLib 和 GeckoMesh 的动画 3D 箱子。
  • 轮盘式物品传送带,带有稀有度配色的卡片和发光效果。
  • 奖品揭晓与结果界面。
  • 左键点击普通奖励可打开 3D 物品检视 视图。
  • 拖拽以旋转检视中的物品,滚动以缩放。
  • 配套的 箱子 + 钥匙 系统。
  • 服务器权威的奖励抽取。
  • 带权重的战利品表,可配置物品数量。
  • 自定义奖励名称、描述、NBT、稀有度名称和颜色。
  • CS 风格稀有度等级,包括 Consumer、Industrial、Mil-Spec、Restricted、Classified、Covert 和 Special。
  • 传奇 / 稀有特殊物品抽取。
  • 可选的第二传送带,用于传奇子战利品。
  • StatTrak 风格 的奖励修饰符,带有持久化的击杀计数器。
  • 自定义箱子音效与 UI 纹理。
  • 针对不同 GUI 尺寸和分辨率的自适应 UI 缩放。
  • 通过 KubeJS 创建全新箱子或修改现有箱子。
  • 客户端与服务器配置选项,涵盖视觉效果、音效、StatTrak 和开箱行为。

KubeJS

箱子在 KubeJS 启动阶段进行配置,使用:

CS2LootboxEvents.register(event => {
    // Register or modify cases here.
})

将你的脚本放入:

kubejs/startup_scripts/

箱子定义在启动阶段注册,因此修改它们需要 完整重启游戏。/reload 不够。

示例

CS2LootboxEvents.register(event => {
    event.addCrate('kubejs:my_case', crate => {
        crate.model('kubejs:geo/my_case.geo.json')
        crate.texture('kubejs:textures/lootbox/my_case.png')
        crate.animation('kubejs:animations/my_case.animation.json')
        crate.keyTexture('kubejs:item/my_case_key')

        crate.loot('minecraft:iron_ingot', 70)
        crate.loot('minecraft:diamond', 30)

        crate.legendary(0.26)
            .subLoot()
                .add('minecraft:netherite_ingot', 80)
                .add('minecraft:nether_star', 20)
    })
})

这会自动注册配套的箱子与钥匙:

kubejs:my_case_case
kubejs:my_case_key

你也可以使用 changeCase(...) 来编辑一个已注册的箱子,而不是创建新箱子。

自定义战利品

普通奖励支持:

  • 带权重的掉落概率。
  • 固定或范围化的堆叠数量。
  • 自定义显示名称。
  • 自定义描述。
  • 自定义 NBT 数据。
  • 物品标签。
  • 自定义稀有度名称和颜色。
  • 内置 CS 风格稀有度等级。
  • StatTrak 风格修饰符。

普通战利品池内的权重会根据启用的普通战利品总权重自动归一化。

传奇奖励

箱子可以定义一个或多个传奇奖励组,用于稀有特殊物品掉落。

传奇奖励可以拥有自己的:

  • 绝对第一阶段概率。
  • 显示名称与提示文本。
  • 前景纹理。
  • 带权重的子战利品表。
  • 可选的专用传奇传送带。

次级传奇传送带也可以被禁用,从而让最终传奇奖励在主传送带结束后立即揭晓。

StatTrak

战利品条目可以选择性地抽取一个 StatTrak 风格修饰符。

StatTrak 物品会将持久化的击杀计数器直接存储在发放的 ItemStack 上,并可以在物品名称下方显示当前击杀数。

服务器配置可以独立控制:

  • 是否可以抽取新的 StatTrak 修饰符。
  • 现有的 StatTrak 物品是否可以增加其击杀计数器。

配置

CS2 Lootbox 提供独立的客户端、通用和服务器配置文件。

客户端选项包括:

  • 箱子内容提示文本。
  • 3D 物品检视。
  • 稀有度发光效果。
  • UI 音效。
  • 传送带滴答音效。
  • StatTrak 击杀数显示。

服务器选项包括:

  • 启用或禁用开箱。
  • 启用或禁用 StatTrak 抽取。
  • 启用或禁用 StatTrak 击杀计数。

必需依赖

  • Minecraft Forge 47+
  • KubeJS 2001.6.5-build.16+
  • GeckoLib 4.8.4+
  • GeckoMesh 1.0.0+
  • LDLib 1.0.52.a+

CS2 Lootbox 专为那些想要 CS 风格开箱系统的刺激感与呈现效果,同时又要通过 KubeJS 完全可配置实际内容、概率、模型、稀有度和行为的整合包而设计。

CS2 Lootbox 是一个粉丝制作的 Minecraft 模组,其灵感来自 Counter-Strike 风格开箱的呈现效果,与 Valve 无关联,也未获得其认可。