# NPC

**NPC** 是 Superior 中不重要的一环，但考虑到部分服主需要，特此编写一节。冒险主城的各个 **NPC** 是通过 **EliteMobs** 插件控制的，请通过 `plugins/EliteMobs/customnpcs` 内的各个文件进行编辑。这里介绍的是 **Citizens** 的 **NPC**。

## 创建 NPC

请先站在你需要创建 **NPC** 的大概的地方，然后使用指令 `/npc create NPC名称`。其中 **NPC** 名称是会显示在 **NPC** 头顶上方的，如果你要显示的内容 **超过一行**，请先填写 **&7，后面使用浮空字代替**。这时，一个 **NPC** 应该在你所在的位置生成了。

我们再使用以下指令对 NPC 进行进一步操作：

* /npc skin 正版玩家名称 —— 将 NPC 的皮肤设置成某位正版玩家的样子。
* /npc look —— NPC 将会看离它最近的玩家。
* /npc command add -p 指令 —— 给 NPC 绑定一个左键以玩家身份执行的指令

然后，使用指令 `/citizens save` 来保存当前的修改。这时打开 `plugins/Citizens/saves.yml` 文件，找到你刚刚创建的 NPC 的配置：

```
  '6':
    metadata:
      cached-skin-uuid-name: trades
      cached-skin-uuid: bc2d2519-c5e4-48f3-99c5-bfe9d396e73e
    name: §7
    uuid: f69095aa-6356-4974-9d0b-ed2a85d69bd4
    traits:
      skintrait:
        fetchDefaultSkin: true
        signature: uE/P8Xdcixfdns663hwABVwaBc3AOvL3LsuOCGJ0I7QSAm+OdfcnF3Cv2KQM1mwCAorHtOpmWGnd3LA7SfXEhYJdVuCuMZwMWTW/mexDRVD0qxAvj5NsHrKLX+hB80nWHshl0n6dMKyF0BzKqmyX0jLhYoYjXRDn4PxbcC4e0X11oHSo8EEanUTTk9Tu0VXAilEApibp+U3VvxnKnx1zm3aH97pxvS1gB0eYskUcv3fPwJ9aM4i5cjjxaXAg0jslm9sTDQzU+ZztjbNad7969TheUxCf5rDm/t3sjnasywEkcj3su7M+CpdwtDHHRBI47Nq6N8qAbR30cSz7RVRbmdnglyUssxYlFdVtNJ9GLAI5dBTBajbs7CM0gUcD4p6ya2upg9lmWnLBm0fLrkWNHeeSK0IzSPJRTyzO1LssKEFDso3l0IVhJrUxBIl14HaXgo9TuzI/weKo3HRv0t8DFnoReq0ugeAQ34frACEtpOATpsz7fpQf0cm/krpHh2ajF+CLamClU0j/9nH9UvKYkFicfYiYEPVoQfZ33KZHwefbtjt6B3g8c9QlkySTBHd0wNw9/TuylG9YPryr9gq29RxOSyxtELvwYXIi82qNjmZfqMgRu9iLLtZEdFN+pSJqPGBIjrEMEwYEayTrYs5DyzknqdEwvMbddgOPTBjIjps=
        skinName: trades
        textureRaw: ewogICJ0aW1lc3RhbXAiIDogMTYyODI0NDkwMzM2MSwKICAicHJvZmlsZUlkIiA6ICJiYzJkMjUxOWM1ZTQ0OGYzOTljNWJmZTlkMzk2ZTczZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJUcmFkZXMiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWJlZGI5NDJjMTU2ZDc0Mzc5MWE1NWY5ZDJjODg3MDBkZWZiOWY5YzEyYzQ0MGM3YjNiODc3ZDhmZGZiNWU3YyIKICAgIH0KICB9Cn0=
        updateSkins: false
      lookclose:
        range: '5.0'
        disablewhilenavigating: true
        enabled: true
        enableRandomLook: false
        randomLookDelay: 60
        realisticlooking: false
        randomPitchRange:
          '0': -10.0
          '1': 0.0
        randomYawRange:
          '0': 0.0
          '1': 360.0
      spawned: true
      location:
        bodyYaw: -85.93808
        world: world
        x: '-50.5'
        y: '38.0'
        z: '-253.5'
        yaw: '-47.4141'
        pitch: '0.0'
      type: PLAYER
      commandtrait:
        cost: -1.0
        executionMode: LINEAR
        experienceCost: -1.0
        hideErrorMessages: false
        commands:
          '0':
            command: trademenu
            hand: RIGHT
            player: true
            op: false
            cooldown: 0
            globalcooldown: 0
            n: -1
            delay: 0
      owner:
        uuid: ceb29779-392b-30ee-a212-6ad059f9046b
      sneak:
        sneaking: false
    traitnames: lookclose,skintrait,scoreboardtrait,type,spawned,inventory,equipment,owner,sneak,commandtrait,mounttrait,location
    navigator:
      speedmodifier: '1.0'
      avoidwater: false
      usedefaultstuckaction: true
```

找到 **location** 配置位置，将里面的 **x，y，z** 三个值小数点后面数字全部删除，改成 **5**，这样 **NPC** 就站在方块的正中央，更加美观了。（需要使用 `/citizens reload` 指令重新加载配置，该指令需要你执行两次）

## 编辑 NPC

* /npc sel —— 选中一个 NPC，你必须先对准一个 NPC 看然后使用该指令，才能继续使用 Citizens 的其他指令，否则插件不知道你要对哪个 NPC 进行编辑。
* /npc id —— 查看一个 NPC 的id，如果你忘记一个 NPC 的id，可以通过该指令查看。
* /npc movehere —— 将一个 NPC 搬到你所在的位置。
* /npc remove —— 删除一个 NPC。
