Créer des NPCs
Paramètres de configuration
isEnabled
Définit si un NPC est activé.
| Clé | Valeurs | Défaut |
|---|---|---|
isEnabled | Boolean | true |
Exemple
isEnabled: true
name
Définit le nom d'affichage d'un NPC. Supporte les Color Codes et les clés de traduction pour les serveurs multilingues.
| Clé | Valeurs | Défaut |
|---|---|---|
name | String | aucune |
Exemple
name: "&aEnn Peecee"

scale
Définit l'échelle (taille) du NPC.
| Clé | Valeurs | Défaut |
|---|---|---|
scale | Multiplier | 1.0 |
Lors de la mise à l'échelle, 1.0 représente la taille par défaut. Pour agrandir l'entité, augmentez la valeur (par exemple, 1.2). Pour réduire l'entité, diminuez la valeur (par exemple, 0.8).
Exemple
scale: 1.2
role
Définit le rôle du NPC, sous le nom. Visuel uniquement. Supporte les Color Codes et les clés de traduction pour les serveurs multilingues.
| Clé | Valeurs | Défaut |
|---|---|---|
role | String | aucune |
Exemple
role: "&c<Red Fellow>"

profession
Définit la profession du NPC, qui détermine son apparence lorsqu'il n'utilise pas de déguisement.
| Clé | Valeurs | Défaut |
|---|---|---|
profession | Profession | NITWIT |
Exemple
profession: NITWIT

greetings
Définit la liste des salutations que le NPC prononce lorsqu'un joueur s'approche. Supporte les clés de traduction pour les serveurs multilingues.
| Clé | Valeurs | Défaut |
|---|---|---|
greetings | String List | aucune |
Exemple
greetings:
- Hi there!
- Good day.

dialog
Définit le dialogue que le NPC dira lorsqu'un joueur est à proximité (Dans le cas du DIALOG interactionType, ce serait le dialogue). Supporte les clés de traduction pour les serveurs multilingues.
| Clé | Valeurs | Défaut |
|---|---|---|
dialog | String List | aucune |
Exemple
dialog:
- I like apples!
- Sure is hot.

farewell
Définit le message d'adieu du NPC. Supporte les clés de traduction pour les serveurs multilingues.
| Clé | Valeurs | Défaut |
|---|---|---|
farewell | String List | aucune |
Exemple
farewell:
- Until next time!
- Bye!

canTalk
Définit si le NPC peut parler.
| Clé | Valeurs | Défaut |
|---|---|---|
canTalk | Boolean | true |
Exemple
canTalk: true
activationRadius
Définit le rayon dans lequel un NPC peut détecter l'approche d'un joueur.
| Clé | Valeurs | Défaut |
|---|---|---|
activationRadius | Double | 3.0 |
Exemple
activationRadius: 3.0
interactionType
Définit le type d'interaction que le NPC effectuera.
| Clé | Valeurs | Défaut |
|---|---|---|
interactionType | Special [1] | aucune |
Exemple
interactionType: TELEPORT_BACK
noPreviousLocationMessage
Lorsqu'un NPC Téléporteur n'a pas d'emplacement précédent vers lequel il peut téléporter un joueur, il affichera ce message. Accepte les Color Codes et les clés de traduction pour les serveurs multilingues
| Clé | Valeurs | Défaut |
|---|---|---|
noPreviousLocationMessage | String | aucune |
Exemple
noPreviousLocationMessage: '&8[EliteMobs] &cCouldn''t send you back to your previous location - no previous location found!'

timeout
Définit le temps, en minutes, avant qu'un NPC ne disparaisse définitivement.
| Clé | Valeurs | Défaut |
|---|---|---|
timeout | Integer | 0 (jamais) |
Exemple
timeout: 0
questFileName
Définit les quêtes que le NPC donne.
| Clé | Valeurs | Défaut |
|---|---|---|
questFileName | String List | aucune |
Exemple
questFileName:
- my_quest_one.yml
- my_quest_two.yml
disguise
Définit le déguisement LibsDisguises du NPC.
| Clé | Valeurs | Défaut |
|---|---|---|
disguise | LibsDisguises format | aucune |
Exemple
disguise: SKELETON

customDisguiseData
Définit les données d'un déguisement LibsDisguises personnalisé.
| Clé | Valeurs | Défaut |
|---|---|---|
customDisguiseData | LibsDisguises format | aucune |
Exemple
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}

customModel
Définit le modèle personnalisé ModelEngine que le NPC utilisera.
| Clé | Valeurs | Défaut |
|---|---|---|
customModel | String | aucune |
Exemple
customModel: MY_MODEL_ONE
arena
Définit le nom de fichier de l'arène pour laquelle le NPC ouvrira un menu (nécessite le ARENA_MASTER interactionType).
| Clé | Valeurs | Défaut |
|---|---|---|
arena | Filename | aucune |
Exemple
arena: my_arena.yml
command
Définit la commande que le NPC exécutera (nécessite le COMMAND interactionType). Les commandes sont exécutées en tant que commandes console, et non en tant que joueur. N'incluez pas la barre oblique (/) au début.
| Clé | Valeurs | Défaut |
|---|---|---|
command | String | aucune |
Exemple
command: say Look at me running a command, how cool!
![]()
spawnLocation
Définit l'emplacement d'apparition des NPCs. Vous devez définir cela via la commande /em spawnnpc <npcfilename.yml>.
| Clé | Valeurs | Défaut |
|---|---|---|
spawnLocation | String | aucune |
Exemple
spawnLocation: my_world,10,50,10,0,0
spawnLocations
Définit les emplacements d'apparition des NPCs. Vous devez définir cela via la commande /em spawnnpc <npcfilename.yml>.
| Clé | Valeurs | Défaut |
|---|---|---|
spawnLocations | String List | aucune |
Exemple
spawnLocations:
- my_world,10,50,10,0,0
- my_world,-10,50,-10,0,0
instanced
Définit si le NPC doit être instancié (pour une utilisation dans des donjons instanciés). Lorsque défini sur true, le NPC est automatiquement cloné pour chaque instance de donjon, chaque clone existant dans le monde d'instance correspondant.
| Clé | Valeurs | Défaut |
|---|---|---|
instanced | Boolean | false |
Exemple
instanced: false
Exemple de configuration 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.

Special [1]
Voici la liste des types d'interaction NPC valides :
| Type | Description |
|---|---|
GUILD_GREETER | Ouvre le menu de la guilde des aventuriers |
CHAT | Le clic droit parcourt le dialog |
CUSTOM_SHOP | Ouvre le menu de la boutique personnalisée |
PROCEDURALLY_GENERATED_SHOP | Ouvre la boutique générée de manière procédurale |
BAR | Ouvre le menu du bar |
ARENA | Ouvre le menu de l'arène |
QUEST_GIVER | Ouvre le menu des quêtes générées de manière procédurale |
CUSTOM_QUEST_GIVER | Ouvre le menu de quête pour une quête spécifique définie dans questFileName |
NONE | Aucune interaction |
SELL | Ouvre le menu de vente |
TELEPORT_BACK | Téléporte les joueurs à leur dernier emplacement dans un monde non-elitemobs |
SCRAPPER | Ouvre le menu de récupération |
REPAIRMAN | Ouvre le menu de réparation |
ENCHANTER | Ouvre le menu d'enchantement |
REFINER | OBSOLÈTE - Fonctionnalité supprimée, ne pas utiliser |
UNBINDER | Ouvre le menu de déliaison |
ARENA_MASTER | Ouvre le menu de l'arène pour l'arène définie dans arenaFilename |
COMMAND | Exécute la commande définie dans command |
SCROLL_APPLIER | Applique les parchemins d'objets élite aux objets |
Pour plus d'informations sur ce que font SCRAPPER et les types d'interaction similaires, cliquez ici.
Notes sur le comportement des NPCs
Les NPCs ont plusieurs comportements codés en dur qui ne peuvent pas être configurés :
- IA désactivée : Les NPCs ne peuvent pas se déplacer de manière autonome. Ils restent à leur emplacement d'apparition.
- Affichage du rôle : Le texte du rôle est affiché sur un support d'armure invisible au-dessus du NPC à une hauteur fixe.
- Délai de dialogue : Les NPCs attendent 3 secondes entre les événements de parole pour éviter les messages qui se chevauchent.
- Cycle de vie des chunks : Les NPCs disparaissent lorsque leur chunk se décharge et réapparaissent lorsqu'il se recharge.
