# 炮塔教程：属性(Properties)

在这一页你将会找到所有炮塔配置文件的属性。你要记住你可以创建尽你所需数量的炮塔，只需要创建新的文件并用`/ct reload`来应用它们

## 别名(Alias)

这将会是炮塔在游戏中显示的名字，而不是它的炮塔名(炮塔名是不带.yml的文件名)，它主要用来作为信息显示

```
alias: "冲锋枪炮塔"
```

## 结构(Structure)

结构定义了炮塔的方块组成。最后一行是最底部的方块。你需要使用有效的材料名称。你可以添加多行来使炮塔变得更高。

最新版的材质:<https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html>\
1.8的材质：<https://github.com/Attano/Spigot-1.8/blob/master/org/bukkit/Material.java>\
你也可以把头颅用作炮塔的一部分，只需要把后面网址中你查到的头颅的Value值放进去就可以了\
<https://minecraft-heads.com/custom-heads>

```
structure:
  - "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDc4YzFiZDliMzQwZmIzODdjMTNiOGI2ZDdhNzUxYzM4NDY2OTI2MmIyNWM2NGJkMjg1YzQ2MzBlZWY0ZmEifX19" #这就是头颅的Value值
  - "CYAN_CONCRETE"
  - "COAL_BLOCK"
```

## 射击类型(Shoot Type)

到目前为止有两种射击类型：`INSTANT`和`PARABOLIC`，分别对应瞬发型和抛物线形。要查看不同的地方，你可以对比冲锋枪炮塔(Burst)和迫击炮塔(Siege)

```
shoot_type: INSTANT
```

## 目标(Target)

到目前为止有两种目标：`ENEMIES`和`ALLIES`，分别对应敌人和盟友。如果目标设置为ENEMIES，那么炮塔就会攻击除了你之外的所有生物。如果目标设置为ALLIES，那么炮塔就会射击(治疗)你的盟友(白名单玩家，拴上的动物，别的插件定义的盟友)。当目标设置为ALLIES时记住让炮塔进行治疗而不是伤害(在炮塔升级(turret upgrades)配置里把*min\_damage* 和*max\_damage*改为*min\_heal*和*max*\_*heal* (你也不会想痛击我的队友，帮助我的敌人对吧))

```
target: ENEMIES
```

## 弹药需求(Require Ammunition)

如果这个选项设置为true，那么玩家就需要向炮塔补充弹药来让它们射击。如果设置为false，那么炮塔的弹药仓库(Ammunition inventory)将无法打开(无限弹药)

```
require_ammunition: true
```

## 生命恢复(Health Recovery)

如果炮塔拥有生命值的话，这个设置的值就是炮塔在config.yml中设置的生命恢复时间间隔之后会恢复生命的

```
health_recovery: 10
```

## 激活间隔(Activation Delay)

这会在炮塔被放置时向炮塔添加一个激活间隔/冷却(以秒为单位)，这意味着在这个时间过去之前炮塔不会射击。

```yaml
activation_delay: 30
```

## 子弹是否穿透液体(Shoot Through Liquids)

如题

```yaml
shoot_through_liquids: true
```

## 最小攻击距离(Min Attack Distance)

炮塔的最小攻击距离. 未设置时默认为2

```yaml
min_attack_distance: 6
```

## 全息图垂直偏移(Hologram Vertical Offset)

如果全息图的位置不对，你可以用这个选项来纠正它

```
hologram_vertical_offset: 0.25
```

## 默认选项(Default Options)

在这里你可以定义某些炮塔的选项。有对应权限的玩家可以在炮塔菜单里改变这些选项

```yaml
default_options:
    attack_players: false
    attack_monsters: true
    attack_animals: false
    
    # 如果设置为true将会攻击村民、铁傀儡、雪傀儡
    attack_others: false
    
    # 炮塔攻击的优先度，可以为CLOSEST或HEALTH.
    # CLOSEST是攻击最近的生物
    # HEALTH是攻击范围内生命最低的生物
    priority: CLOSEST
```

## 效果(Effects)

这里有两种效果。射击效果和影响效果(shoot\_effect|impact\_effect)。射击效果会体现在炮塔处，而影响效果将会体现在目标的位置。炮塔可以同时拥有两种效果，或是只有射击效果。

| 选项                                                                    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                   | 例子                                                                                |
| --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------- |
| **sound**                                                             | <p>要播放的音效，如果类型为shoot\_effect,它将会在炮塔处播放，如果类型为impact\_effect,它将会在目标处播放。格式为:<声音>;<音量>;<音高></p><p>1.16 音效: <a href="https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html"><https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html></a></p><p>1.8 音效: <a href="https://github.com/Attano/Spigot-1.8/blob/master/org/bukkit/Sound.java"><https://github.com/Attano/Spigot-1.8/blob/master/org/bukkit/Sound.java></a></p> | <p><code>sound: ENTITY\_FIREWORK\_ROCKET</code><br><code>\_BLAST;1;1.7</code></p> |
| **separation**                                                        | <p><strong>只在INSTANT类型炮塔下生效</strong></p><p>定义了每一个粒子效果之间的间隔，按方块格数计算</p>                                                                                                                                                                                                                                                                                                                                                               | `separation: 0.3`                                                                 |
| **amount**                                                            | <p><strong>只在INSTANT类型炮塔下生效</strong></p><p>定义了显示的粒子的数量。如果separation设置为1，amount设置为5，那么就意味着第一个粒子将会在距离炮塔一格的位置显示，第二个距离两格，等等</p>                                                                                                                                                                                                                                                                                                          | `amount: 5`                                                                       |
| <p><strong>parabolic\_</strong></p><p><strong>separation</strong></p> | <p><strong>只在PARABOLIC类型炮塔下生效</strong></p><p>如果你想让更多粒子被显示就把这个值调高，反之亦然。</p>                                                                                                                                                                                                                                                                                                                                                           | `parabolic_separation: 20`                                                        |
| <p><strong>parabolic\_</strong></p><p><strong>speed</strong></p>      | <p><strong>只在PARABOLIC类型炮塔下生效</strong></p><p>按照秒数显示粒子的速度。相当于炮弹的速度，最小下限为0.05</p>                                                                                                                                                                                                                                                                                                                                                      | `parabolic_speed: 0.1`                                                            |

shoot\_effect和impact\_effect都有一个`list_of_effects`，它用来定义你想显示的粒子的种类，有一个属性叫做speed，不要把它和设计速度弄混了，这是粒子速度，如果你想让粒子看起来是静态的话就把它设置为0.01\
1.16 的粒子: <https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Particle.html>\
1.8 的粒子: <https://github.com/Attano/Spigot-1.8/blob/master/net/minecraft/server/v1_8_R3/EnumParticle.java>

{% hint style="info" %}
如果你想用一个有颜色的红石粒子的话，按照下面这个格式输入REDSTONE;<颜色>\
颜色列表:<https://minecraftcommand.science/armor-color>
{% endhint %}

完整的例子：

```yaml
effects:
    shoot_effect:
      sound: ENTITY_FIREWORK_ROCKET_BLAST;1;1.7
      
      separation: 0.3
      
      amount: 5
      
      parabolic_separation: 35
      
      parabolic_speed: 0.05
      
      list_of_effects:
        effect1:

          particle: CRIT
          
          speed: 0.01
          
          # 这些属性将会被翻译给粒子.
          offset_horizontal: 0.25
          offset_vertical: 0.1
        effect2:
          particle: CRIT
          speed: 0.01
          offset_horizontal: -0.25
          offset_vertical: 0.1
    impact_effect:
      sound: ENTITY_GENERIC_EXPLODE;1;0.4
      list_of_effects:
        effect1:
          particle: EXPLOSION_LARGE
          speed: 1
```
