跳至主要内容

創建 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 永久消失前的時間(以分鐘為單位)。

預設值
timeoutInteger0 (never)
範例
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

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開啟競技場選單
QUEST_GIVER開啟程序生成的任務選單
CUSTOM_QUEST_GIVER開啟在 questFileName 中設定的特定任務選單
NONE無互動
SELL開啟出售選單
TELEPORT_BACK將玩家傳送回他們所在的上一個非 elitemobs 世界位置
SCRAPPER開啟拆解選單
REPAIRMAN開啟修理選單
ENCHANTER開啟附魔選單
REFINER已棄用 - 功能已移除,請勿使用
UNBINDER開啟解綁選單
ARENA_MASTER開啟在 arenaFilename 中設定的競技場選單
COMMAND執行在 command 中設定的指令
SCROLL_APPLIER將精英物品卷軸應用於物品

有關 SCRAPPER 和類似互動類型的更多資訊,請點擊這裡

NPC 行為注意事項

NPC 有幾個無法配置的硬編碼行為:

  • AI 已停用:NPC 無法自主移動。它們會保持在生成位置。
  • 角色顯示:角色文字顯示在 NPC 上方固定高度的隱形盔甲架上。
  • 對話冷卻時間:NPC 在說話事件之間會等待 3 秒,以防止訊息重疊。
  • 區塊生命週期:當 NPC 所在的區塊卸載時,NPC 會消失,並在區塊重新載入時重生。