Saltar al contenido principal

Crear NPCs

webapp_banner.jpg

Ajustes de configuración

isEnabled

Establece si un NPC está habilitado.

KeyValoresPredeterminado
isEnabledBooleantrue
Ejemplo
isEnabled: true

name

Establece el nombre visible de un NPC. Admite Color Codes y claves de traducción para servidores multiidioma.

KeyValoresPredeterminado
nameStringninguno
Ejemplo
name: "&aEnn Peecee"

create_npc_name.jpg


scale

Establece la escala (tamaño) del NPC.

KeyValoresPredeterminado
scaleMultiplier1.0

Al escalar, 1.0 representa el tamaño predeterminado. Para hacer la entidad más grande, aumenta el valor (por ejemplo, 1.2). Para hacer la entidad más pequeña, disminuye el valor (por ejemplo, 0.8).

Ejemplo
scale: 1.2

role

Establece el rol del NPC, bajo el nombre. Solo es visual. Admite Color Codes y claves de traducción para servidores multiidioma.

KeyValoresPredeterminado
roleStringninguno
Ejemplo
role: "&c<Red Fellow>"

create_npc_role.jpg


profession

Establece la profesión del NPC, que define su skin cuando no se usa un disfraz.

KeyValoresPredeterminado
professionProfessionNITWIT
Ejemplo
profession: NITWIT

create_npc_profession.jpg


greetings

Establece la lista de saludos que el NPC dice cuando un jugador se acerca. Admite claves de traducción para servidores multiidioma.

KeyValoresPredeterminado
greetingsString Listninguno
Ejemplo
greetings:
- Hi there!
- Good day.

create_npc_greetings.jpg


dialog

Establece el diálogo que el NPC dirá mientras un jugador esté cerca (en el caso del interactionType DIALOG, este sería el diálogo). Admite claves de traducción para servidores multiidioma.

KeyValoresPredeterminado
dialogString Listninguno
Ejemplo
dialog:
- I like apples!
- Sure is hot.

create_npc_dialog.jpg


farewell

Establece el mensaje de despedida del NPC. Admite claves de traducción para servidores multiidioma.

KeyValoresPredeterminado
farewellString Listninguno
Ejemplo
farewell: 
- Until next time!
- Bye!

create_npc_farewell.jpg


canTalk

Establece si el NPC puede hablar.

KeyValoresPredeterminado
canTalkBooleantrue
Ejemplo
canTalk: true

activationRadius

Establece el radio en el que un NPC puede detectar a un jugador acercándose.

KeyValoresPredeterminado
activationRadiusDouble3.0
Ejemplo
activationRadius: 3.0

scripts

Establece los scripts Lua adjuntos a este NPC. Los archivos de script se cargan desde plugins/EliteMobs/npc_scripts/ y los nombres de archivo deben coincidir exactamente, incluida la extensión .lua.

KeyValoresPredeterminado
scriptsString Listninguno

Los scripts de NPC pueden reaccionar a hooks de ciclo de vida, interacción y proximidad, como on_npc_proximity_enter. Consulta Scripts Lua de NPC para ver la API completa y ejemplos.

Ejemplo
scripts:
- wave.lua

interactionType

Establece el tipo de interacción que realizará el NPC.

KeyValoresPredeterminado
interactionTypeEspecial [1]ninguno
Ejemplo
interactionType: TELEPORT_BACK

noPreviousLocationMessage

Cuando un NPC Teletransportador no tiene una ubicación anterior a la que pueda teletransportar a un jugador, mostrará este mensaje. Acepta Color Codes y claves de traducción para servidores multiidioma.

KeyValoresPredeterminado
noPreviousLocationMessageStringninguno
Ejemplo
noPreviousLocationMessage: '&8[EliteMobs] &cCouldn''t send you back to your previous location - no previous location found!'

create_npc_noteleportlocation.jpg


timeout

Establece la cantidad de tiempo, en minutos, antes de que un NPC desaparezca permanentemente.

KeyValoresPredeterminado
timeoutDouble0 (nunca)
Ejemplo
timeout: 0

questFileName

Establece las misiones que da el NPC.

KeyValoresPredeterminado
questFileNameString Listninguno
Ejemplo
questFileName:
- my_quest_one.yml
- my_quest_two.yml

disguise

Establece el disfraz de LibsDisguises que tiene el NPC.

KeyValoresPredeterminado
disguiseFormato de LibsDisguisesninguno
Ejemplo
disguise: SKELETON

create_npc_disguise.jpg


customDisguiseData

Establece los datos de un disfraz personalizado de LibsDisguises.

KeyValoresPredeterminado
customDisguiseDataFormato de LibsDisguisesninguno
Ejemplo
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

Establece el modelo personalizado de ModelEngine que usará el NPC.

KeyValoresPredeterminado
customModelStringninguno
Ejemplo
customModel: MY_MODEL_ONE

arena

Establece el nombre de archivo de la arena para la que el NPC abrirá un menú (requiere el interactionType ARENA_MASTER).

KeyValoresPredeterminado
arenaFilenameninguno
Ejemplo
arena: my_arena.yml

command

Establece el comando que ejecutará el NPC (requiere el interactionType COMMAND). Los comandos se ejecutan como el jugador, no como la consola. No incluyas la barra inicial (/).

KeyValoresPredeterminado
commandStringninguno
Ejemplo
command: say Look at me running a command, how cool!

create_npc_command.jpg


spawnLocation

Establece la ubicación de aparición de los NPCs. Deberías establecer esto mediante el comando /em place npc <npcfilename.yml>.

KeyValoresPredeterminado
spawnLocationStringninguno
Ejemplo
spawnLocation: my_world,10,50,10,0,0

spawnLocations

Establece las ubicaciones de aparición de los NPCs. Deberías establecer esto mediante el comando /em place npc <npcfilename.yml>.

KeyValoresPredeterminado
spawnLocationsString Listninguno
Ejemplo
spawnLocations: 
- my_world,10,50,10,0,0
- my_world,-10,50,-10,0,0

instanced

Establece si el NPC debe estar instanciado (para uso en mazmorras instanciadas). Cuando se establece en true, el NPC se clona automáticamente para cada instancia de mazmorra, y cada clon existe en el mundo de instancia correspondiente.

KeyValoresPredeterminado
instancedBooleanfalse
Ejemplo
instanced: false

syncMovement

Establece si el movimiento del NPC debe sincronizarse. Se usa para controlar si las actualizaciones de posición del NPC se sincronizan.

KeyValoresPredeterminado
syncMovementBooleantrue
Ejemplo
syncMovement: true

Ejemplo de configuración de 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 (do not include the leading slash)
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 place npc <npcfilename.yml> command, so make sure you pose where you want the NPC to be facing when running the command.

create_npc_npc.jpg


Especial [1]

La siguiente es la lista de tipos de interacción de NPC válidos:

TipoDescripción
GUILD_GREETERAbre el menú de selección de bono de habilidad de arma
CHATEl clic derecho recorre el dialog
CUSTOM_SHOPAbre el menú de la tienda personalizada
PROCEDURALLY_GENERATED_SHOPAbre la tienda generada proceduralmente
BARSin implementar. Indica al jugador que la característica llegará pronto.
ARENANo hace nada. Usa ARENA_MASTER en su lugar.
QUEST_GIVERAbre el menú de misiones generadas proceduralmente
CUSTOM_QUEST_GIVERAbre el menú de misiones para una misión específica establecida en questFileName
NONESin interacciones
SELLAbre el menú de venta
TELEPORT_BACKTeletransporta a los jugadores de vuelta a la última ubicación de mundo no perteneciente a elitemobs en la que estuvieron
SCRAPPERAbre el menú de desguace
REPAIRMANAbre el menú de reparación
ENCHANTERAbre el menú de encantamiento
REFINERREEMPLAZADO - Indica al jugador que la característica fue reemplazada; a los administradores se les indica que eliminen el NPC
SMELTERREEMPLAZADO - Indica al jugador que la característica fue reemplazada; a los administradores se les indica que eliminen el NPC
ENHANCERREEMPLAZADO - Indica al jugador que la característica fue reemplazada; a los administradores se les indica que eliminen el NPC
UNBINDERAbre el menú de desvinculación
ARENA_MASTERAbre el menú de la arena establecida en arena
COMMANDEjecuta el comando establecido en command
SCROLL_APPLIERAplica pergaminos elite a los objetos
ARROW_SHOPAbre el menú de la tienda de flechas
GAMBLING_BLACKJACKAbre el juego de apuestas de blackjack
GAMBLING_COINFLIPAbre el juego de apuestas de cara o cruz
GAMBLING_SLOTSAbre el juego de apuestas de tragaperras
GAMBLING_HIGHERLOWERAbre el juego de apuestas de mayor/menor

Para más información sobre lo que hacen el SCRAPPER y tipos de interacción similares haz clic aquí.

Notas sobre el comportamiento de los NPCs

Los NPCs tienen varios comportamientos preprogramados que no se pueden configurar:

  • IA Deshabilitada: Los NPCs no pueden moverse de forma autónoma. Permanecen en su ubicación de aparición.
  • Visualización del Rol: El texto del rol se muestra en un soporte de armadura invisible sobre el NPC a una altura fija.
  • Tiempo de espera de diálogo: Los NPCs esperan 3 segundos entre eventos de habla para evitar que los mensajes se solapen.
  • Ciclo de vida del Chunk: Los NPCs desaparecen cuando su chunk se descarga y reaparecen cuando se vuelve a cargar.