跳到主要内容

创建NPC

webapp_banner.jpg

配置设置

isEnabled

设置NPC是否启用。

默认值
isEnabledBooleantrue
示例
isEnabled: true

name

设置NPC的显示名称。支持颜色代码和多语言服务器的翻译键。

默认值
nameStringnone
示例
name: "&aEnn Peecee"

create_npc_name.jpg


scale

设置NPC的缩放(大小)。

默认值
scaleMultiplier1.0

缩放时,1.0代表默认大小。要使实体更大,请增加值(例如1.2)。要使其更小,请减少值(例如0.8)。

示例
scale: 1.2

role

设置NPC的角色,显示在名称下方。仅为视觉效果。支持颜色代码和多语言服务器的翻译键。

默认值
roleStringnone
示例
role: "&c<Red Fellow>"

create_npc_role.jpg


profession

设置NPC的职业,决定使用伪装时的外观。

默认值
professionProfessionNITWIT
示例
profession: NITWIT

create_npc_profession.jpg


greetings

设置NPC在玩家靠近时说的问候语列表。支持多语言服务器的翻译键。

默认值
greetingsString Listnone
示例
greetings:
- Hi there!
- Good day.

create_npc_greetings.jpg


dialog

设置NPC在玩家附近时说的对话(对于DIALOG interactionType,这就是对话内容)。支持多语言服务器的翻译键。

默认值
dialogString Listnone
示例
dialog:
- I like apples!
- Sure is hot.

create_npc_dialog.jpg


farewell

设置NPC的告别消息。支持多语言服务器的翻译键。

默认值
farewellString Listnone
示例
farewell:
- Until next time!
- Bye!

create_npc_farewell.jpg


canTalk

设置NPC是否可以说话。

默认值
canTalkBooleantrue
示例
canTalk: true

activationRadius

设置NPC可以检测到玩家接近的半径。

默认值
activationRadiusDouble3.0
示例
activationRadius: 3.0

interactionType

设置NPC执行的交互类型。

默认值
interactionTypeSpecial [1]none
示例
interactionType: TELEPORT_BACK

noPreviousLocationMessage

当传送NPC没有可以传送玩家回去的先前位置时,会显示此消息。接受颜色代码和多语言服务器的翻译键。

默认值
noPreviousLocationMessageStringnone
示例
noPreviousLocationMessage: '&8[EliteMobs] &cCouldn''t send you back to your previous location - no previous location found!'

create_npc_noteleportlocation.jpg


timeout

设置NPC永久消失前的时间(以分钟为单位)。

默认值
timeoutDouble0(永不)
示例
timeout: 0

questFileName

设置NPC提供的任务。

默认值
questFileNameString Listnone
示例
questFileName:
- my_quest_one.yml
- my_quest_two.yml

disguise

设置NPC的LibsDisguises伪装。

默认值
disguiseLibsDisguises formatnone
示例
disguise: SKELETON

create_npc_disguise.jpg


customDisguiseData

设置自定义LibsDisguises伪装的数据。

默认值
customDisguiseDataLibsDisguises formatnone
示例
disguise: custom:my_cool_disguise_name
customDisguiseData: player my_cool_disguise_name setskin {"id":"364acb6d-9050-46f7-b5fb-f8c3fd83a6fc","name":"Unknown","properties":[{"name":"textures","value":"ewogICJ0aW1lc3RhbXAiIDogMTYxMTk4ODA4Nzc1NSwKICAicHJvZmlsZUlkIiA6ICJkZGVkNTZlMWVmOGI0MGZlOGFkMTYyOTIwZjdhZWNkYSIsCiAgInByb2ZpbGVOYW1lIiA6ICJEaXNjb3JkQXBwIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzliYmVkODQzNWY4YmYyNzhhZmUyNmU2NGZkOTI2YjhiMzc3MzJkODhlMzM0ODk3ZGJkNTI3ZDU2ZmY5MTk5MGUiCiAgICB9CiAgfQp9","signature":"ujLq1joYVktuQAp1xpFKlxQFUVinSePiDBiVCAxxix/mA5vP86i/eAOfb1mtGjaAZ6sO0l2olbzvycnGXNBtbAxgqprguROXY4tpWiePVTDmy3iD4GdOCxHAkYLoyMV5qTT4SNsldUFFuND8GSEgbNMltKDLmhNKwzm08iCigPfpeuYpwljgJPxu6ka54PKNaQu4doI0ZDZXKqq4hPhR3Bs2Sz9MI0SmdmQWwcCzUz3DFdVno27fmQ6LwqmT+eSoOv0EttVG/XMaTYQ5lhBY61mqf6WlJyYVUSfjJk1AbYsctu7dWM+sbY8jFq5ljvXJGGr5TyKi+fs8vHy06Z2go20QgTYOw+caFxFijAS6fgm3oY57VEO/+/9OLHdD+Z9BrWqQWcIIrVeIfxjue/yt4pyeVv9jX59hjNFjhcPEwotkxJ+vZ96WlTLWDG4BiqauDr2VeGyLlVaygO9ZU0wwsN65iSh91GI3tMIA5wbDR0Hts/9ABvt9eafHbowS+4SZXN0i9mYnKg7op1eiB8nMEAGsPJg3DwsmUrh3ACAapQ6eYHiJpo59RXDqKlRcXwo7wsEFp//5LgQWbPj0NP3nxnywdpozqSAeq6236qlhE9BT9eiyJ41V9sMelYFEWMlUAltR40NdbIrHB0J3nmfuLJz44/sTwWf6P1khOy//XX0="}],"legacy":false}

create_npc_custom_disguise.jpg


customModel

设置NPC将使用的ModelEngine自定义模型。

默认值
customModelStringnone
示例
customModel: MY_MODEL_ONE

arena

设置NPC将打开菜单的竞技场文件名(需要ARENA_MASTER interactionType)。

默认值
arenaFilenamenone
示例
arena: my_arena.yml

command

设置NPC将执行的命令(需要COMMAND interactionType)。命令以玩家身份执行,而非控制台。不要包含前导斜杠(/)。

默认值
commandStringnone
示例
command: say Look at me running a command, how cool!

create_npc_command.jpg


spawnLocation

设置NPC的生成位置。应通过/em spawnnpc <npcfilename.yml>命令设置。

默认值
spawnLocationStringnone
示例
spawnLocation: my_world,10,50,10,0,0

spawnLocations

设置NPC的生成位置。应通过/em spawnnpc <npcfilename.yml>命令设置。

默认值
spawnLocationsString Listnone
示例
spawnLocations:
- my_world,10,50,10,0,0
- my_world,-10,50,-10,0,0

instanced

设置NPC是否应该被实例化(用于实例化地下城)。设置为true时,NPC会自动为每个地下城实例克隆,每个克隆存在于相应的实例世界中。

默认值
instancedBooleanfalse
示例
instanced: false

syncMovement

设置NPC的移动是否应该同步。用于控制NPC的位置更新是否同步。

默认值
syncMovementBooleanfalse
示例
syncMovement: false

NPC配置示例
isEnabled: true
name: "&cRed Rubin"
role: "&a<Generic NPC>"
profession: NITWIT
greetings:
- Hiya!
- Hello!
dialog:
- Great conversation!
- Pleasure talking with you!
farewell:
- Goodbye!
- Laters!
canTalk: true
activationRadius: 4
interactionType: CHAT
timeout: 0
questFileName:
- my_quest.yml #npc interactionType must be set to CUSTOM_QUEST_GIVER
disguise: SKELETON
customDisguiseData: #used when a custom libsdisguise is being set
customModel: MODEL_ONE
arena: my_arena.yml #npc interactionType must be set to ARENA_MASTER
command: /say Hello World! #npc interactionType must be set to COMMAND
spawnLocation: my_world,584,55,127,90,10 #remember that NPCs use pitch and yaw to set where they are looking at. this is also automatically set when running the /em spawnnpc <npcfilename.yml> command, so make sure you pose where you want the NPC to be facing when running the command.

create_npc_npc.jpg


Special [1]

以下是有效的NPC交互类型列表:

类型描述
GUILD_GREETER打开武器技能加成选择菜单
CHAT右键单击循环浏览dialog
CUSTOM_SHOP打开自定义商店菜单
PROCEDURALLY_GENERATED_SHOP打开程序化生成的商店
BAR打开酒吧菜单
ARENA无任何效果。请改用ARENA_MASTER
QUEST_GIVER打开程序化生成的任务菜单
CUSTOM_QUEST_GIVER打开questFileName中设置的特定任务集的任务菜单
NONE无交互
SELL打开出售菜单
TELEPORT_BACK将玩家传送回他们上次所在的非EliteMobs世界位置
SCRAPPER打开拆解菜单
REPAIRMAN打开修理菜单
ENCHANTER打开附魔菜单
REFINER已弃用 - 功能已移除,请勿使用
SMELTER已弃用 - 功能已移除,请勿使用
ENHANCER已弃用 - 功能已移除,请勿使用
UNBINDER打开解绑菜单
ARENA_MASTER打开arenaFilename中设置的竞技场的竞技场菜单
COMMAND执行command中设置的命令
SCROLL_APPLIER将精英物品卷轴应用到物品上
ARROW_SHOP打开箭矢商店菜单
GAMBLING_BLACKJACK打开二十一点赌博游戏
GAMBLING_COINFLIP打开抛硬币赌博游戏
GAMBLING_SLOTS打开老虎机赌博游戏
GAMBLING_HIGHERLOWER打开高低赌博游戏

有关SCRAPPER和类似交互类型的更多信息,请点击此处

NPC行为注意事项

NPC有几种无法配置的硬编码行为:

  • AI禁用:NPC无法自主移动。它们停留在生成位置。
  • 角色显示:角色文本显示在NPC上方固定高度的隐形盔甲架上。
  • 对话冷却:NPC在语音事件之间等待3秒以防止消息重叠。
  • 区块生命周期:NPC在区块卸载时消失,在区块重新加载时重新生成。