Skip to content
On this page

猹の枪械

主配置文件

yml
############################
#         插件验证          #
############################
apiKey: "apiKey"

############################
#         系统设定          #
############################
# 切换射击模式按键
# 需求说明:玩家需要在战斗中快速切换点射/连发/爆发模式
mode-key: "B"

# 瞄准镜 HUD 匹配项(按镜型配置不同 FOV 和界面)
# 需求说明:不同镜型使用不同缩放和 UI,避免所有枪械开镜表现一致
zoom-hud:
  红点:
    fov: 0.9
    hud: "红点瞄准镜"
  全息:
    fov: 0.8
    hud: "全息瞄准镜"
  4倍镜:
    fov: 0.25
    hud: "4倍瞄准镜"

# 名称隐藏世界
# 需求说明:大厅、剧情过场等场景通常不需要显示枪械信息
hide-world:
  - "world"

# 子弹槽位
# 需求说明:统一弹药来源,避免玩家把弹药放在任意槽导致读取混乱
bullet-slot:
  - "子弹袋1"
  - "子弹袋2"

# 指定 lore 物品不掉落
# 需求说明:保护关键道具,避免死亡时误掉落
drop-protect:
  - "保护物品"

# 第三方枪声音量倍率
# 需求说明:统一不同资源包下的枪声音量体感
sound-multiplier: 2.0

# 第三人称偏移 x,y,z
third-person: [ 0.0, 0.0, 0.0 ]

# 第三人称旋转 angle,x,y,z
third-person-rotate: [ 0.0, 0.0, 0.0, 0.0 ]

枪械配置

yml
# 内部唯一 ID
AK47:
  # action-bar 中显示的当前枪械弹药信息
  info: "{mode}模式 弹药 [§f{ammo}/{ammo-max}]"

  # 枪械物品配置
  item:
    name: "§cAK47"
    type: PAPER
    lore:
      - "AK47"
    nbt:
      词条: ""

  # 轨迹偏移 x,y,z
  # 需求说明:让弹道视觉与枪口位置更贴近,减少“从眼睛发射”的违和感
  offset: [ 0.5, 0, 0.5 ]

  # 弹夹容量
  magazine-size: 30

  # 最远攻击距离
  max-range: 50

  # 射击配置
  shoot:
    # 射击限制
    circumstance:
      swimming: false # 游泳时无法射击
      sprinting: false # 奔跑时无法射击
      sneaking: false # 潜行时无法射击

    # 切换射击模式时的联动表现
    change-mechanics:
      commands:
        - "console:执行切换模式模型动作"
      sounds:
        - "minecraft:block.wooden_door.open"

    # 不同射击状态下可触发的附加动作
    shoot-commands:
      0:
        zoom-in-skill: "瞄准子弹"
        zoom-in:
          - "console:执行开镜射击模型动作"
        zoom-out-skill: "腰射子弹"
        zoom-out:
          - "console:执行腰射模型动作"

    # 切换等待(秒)
    wait: 1

    # 射击模式【0 单发 | 1 连发 | 2 三连发 | 3 特殊模式】
    mode:
      0:
        display: "点射"
        # 子弹名模糊匹配
        ammo-types: "7.62弹匣"
        reload-mechanics:
          commands:
            - "console:执行换弹模型动作"
            - "console:执行手持主武器换弹模型动作"
          sounds:
            - "minecraft:block.wooden_door.open"
        fire-cooldown: 1
        # 每次射击弹药数量
        fire-amount: 1
        sound: "minecraft:block.wood.break"
        out-of-ammo: "minecraft:entity.experience_orb.pickup"
        spread:
          base: 2 # 基础扩散
          shoot: 0.2 # 连续射击扩散增加值
          max: 5 # 扩散上限
          modifier:
            standing: 1 # 站立扩散倍率
            walking: 1.2 # 行走扩散倍率
            zooming: 0.5 # 瞄准扩散倍率
            sneaking: 0.1 # 蹲伏扩散倍率
        damage:
          base: 2.5 # 基础伤害
          drop-off:
            - "5~-0.56" # 五格远缩减 0.56 伤害
            - "10~-1.13"
            - "15~-1.69"
            - "20~-2.25"
            - "25~-2.5"
        x-recoil: -0.5~0.5
        y-recoil: 0.5
        # 回弹
        y-bounce: 0.1

      1:
        display: "全自动"
        # 子弹名模糊匹配
        ammo-types: "7.62弹匣"
        reload-mechanics:
          commands:
            - "console:执行换弹模型动作"
            - "console:执行手持主武器换弹模型动作"
          sounds:
            - "minecraft:block.wooden_door.open"
        # 射击间隔 tick
        fire-rate: 2
        fire-amount: 1
        sound: "minecraft:block.wood.break"
        out-of-ammo: "minecraft:entity.experience_orb.pickup"
        spread:
          base: 2 # 基础扩散
          shoot: 0.2 # 连续射击扩散增加值
          max: 5
          modifier:
            standing: 1 # 站立扩散倍率
            walking: 1.2 # 行走扩散倍率
            zooming: 0.5 # 瞄准扩散倍率
            sneaking: 0.1 # 蹲伏扩散倍率
        damage:
          base: 2.5 # 基础伤害
          drop-off:
            - "5~-0.56"
            - "10~-1.13"
            - "15~-1.69"
            - "20~-2.25"
            - "25~-2.5"
        x-recoil: -0.5~0.5
        y-recoil: 0.5
        y-bounce: 0.1

      2:
        display: "爆发"
        # 子弹名模糊匹配
        ammo-types: "7.62弹匣"
        reload-mechanics:
          commands:
            - "console:执行换弹模型动作"
            - "console:执行手持主武器换弹模型动作"
          sounds:
            - "minecraft:block.wooden_door.open"
        fire-rate: 1
        fire-cooldown: 1
        fire-amount: 1
        sound: "minecraft:block.wood.break"
        out-of-ammo: "minecraft:entity.experience_orb.pickup"
        spread:
          base: 2 # 基础扩散
          shoot: 0.2 # 连续射击扩散增加值
          max: 5
          modifier:
            standing: 1 # 站立扩散倍率
            walking: 1.2 # 行走扩散倍率
            zooming: 0.5 # 瞄准扩散倍率
            sneaking: 0.1 # 蹲伏扩散倍率
        damage:
          base: 2.5 # 基础伤害
          drop-off:
            - "5~-0.56"
            - "10~-1.13"
            - "15~-1.69"
            - "20~-2.25"
            - "25~-2.5"
        x-recoil: -0.5~0.5
        y-recoil: 0.5
        y-bounce: 0.1

  # 换弹配置
  reload:
    out-of-ammo: "无备弹音效"
    reload-duration: 70 # 装弹时长(tick)

  # 瞄准配置
  scope:
    # 瞄准限制
    circumstance:
      swimming: false
      sprinting: false
      sneaking: false
    scale: 0.8
    zoom: true
    zoom-in:
      0:
        sounds:
          - "瞄准音效"
        commands:
          - "console:执行开镜模型动作"
    zoom-out:
      0:
        sounds:
          - "退出瞄准音效"
        commands:
          - "console:执行收镜模型动作"

语言文件

yml
# 枪械配置不存在时返回提示
# 需求说明:服主排查物品 ID 错配时需要明确错误信息
gun-not-found: "§c找不到该枪械配置"