# 自定义 NPC

## 示例 NPC

首先，你需要知道在哪里找到 NPC 的配置文件。所有的 NPC 配置文件都在 \~/EliteMobs/npcs 文件夹。

每个 NPC 都有自己独立的文件储存配置，这意味着如果您想创建一个新的 NPC 的话，只需要在这个文件夹再新建一个新的文件即可。

下面将提供一个示例的 NPC 配置文件以便于你了解如何填写 NPC 的配置文件：

```
isEnabled: true
name: Example
role: <Example Role>
profession: NITWIT
location: EliteMobs_adventurers_guild,285.5,91,209.5,0,0
greetings:
- I'm a test npc!
farewell:
- Bye!
dialog:
- Test dialog!
canMove: false
canTalk: true
activationRadius: 3.0
canSleep: true
interactionType: CHAT
```

## isEnabled

`isEnabled` 设置是否启用该 NPC。

## name

`name` 设置 NPC 的名称，显示在 NPC 头顶的第一行。

## role

`role` 设置 NPC 的角色，与名称相差不大，只是显示在 NPC 头顶的的第二行。以作者的愿景，你应该在这里填写 NPC 的作用。

## profession

`profession` 设置 NPC 的职业（也就是村民的职业），在这里只是改变皮肤而已。&#x20;

## location

`location` 设置 NPC 的位置，你可以在创建完 NPC 文件后在重启插件后使用指令 `/em npc set [NPC文件名称]` 来在游戏内设置，这样更加便捷。该选项的格式是 `世界名称,x,y,z,pitch,yaw`。

## greetings

`greetings` 设置当玩家点击该 NPC 后，NPC 的对话信息。

## farewell

`farewell` 设置当玩家关闭该 NPC 所提供对应功能的菜单后，NPC  的对话信息。

## dialog

`dialog` 设置当玩家靠近该 NPC 时，NPC 的对话信息。

## canMove

`canMove` 设置 NPC 是呆在原地还是会漫步行走。目前漫步行走尚未完成，不推荐使用。

## canTalk

`canTalk` 设置 NPC 能否对话。

## activationRadius

`activationRadius` 设置 NPC 使用靠近类型对话时的检测半径。

## canSleep

`canSleep` 设置 NPC 是否在晚上睡觉。如果是那么 NPC  在晚上将会消失并在原地提示一个相关信息。

## interactionType

`interactionType` 设置 NPC 的交互功能，有如下功能：

### GUILD\_GREETER

打开冒险家公会菜单。

### CHAT

仅对话，将会使用 `dialog` 选项的对话。

### CUSTOM\_SHOP

打开固定战利品商店。

### PROCEDURALLY\_GENERATED\_SHOP

打开随机战利品商店。

### QUEST\_GIVER

打开任务菜单。

### CUSTOM\_QUEST\_GIVER

给予任务。

### TELEPORT\_BACK

返回上一个地点。（类似于 /back 的存在）

### BAR

打开酒吧菜单。

### ENHANCER

打开强化菜单。

### REFINER

打开精炼菜单。

### REPAIRMAN

打开修复菜单。

### SCRAPPER

打开回收菜单。

### UNBINDER

打开解除附魔菜单。

### SELL

旅行商人，使用唤商附魔的物品召唤生成。

### ARENA\_MASTER

打开怪物竞技场菜单。
