Creer des NPCs
Parametres de configuration
isEnabled
Definit si un NPC est active.
| Cle | Valeurs | Par defaut |
|---|---|---|
isEnabled | Boolean | true |
Exemple
isEnabled: true
name
Definit le nom d'affichage d'un NPC. Supporte les codes de couleur et les cles de traduction pour les serveurs multilingues.
| Cle | Valeurs | Par defaut |
|---|---|---|
name | String | none |
Exemple
name: "&aEnn Peecee"

scale
Definit l'echelle (taille) du NPC.
| Cle | Valeurs | Par defaut |
|---|---|---|
scale | Multiplier | 1.0 |
Lors de la mise a l'echelle, 1.0 represente la taille par defaut. Pour agrandir l'entite, augmentez la valeur (par ex., 1.2). Pour la reduire, diminuez la valeur (par ex., 0.8).
Exemple
scale: 1.2
role
Definit le role du NPC, affiche sous le nom. Purement visuel. Supporte les codes de couleur et les cles de traduction pour les serveurs multilingues.
| Cle | Valeurs | Par defaut |
|---|---|---|
role | String | none |
Exemple
role: "&c<Red Fellow>"

profession
Definit la profession du NPC, qui determine son apparence lorsqu'aucun deguisement n'est utilise.
| Cle | Valeurs | Par defaut |
|---|---|---|
profession | Profession | NITWIT |
Exemple
profession: NITWIT

greetings
Definit la liste des salutations que le NPC dit lorsqu'un joueur s'approche. Supporte les cles de traduction pour les serveurs multilingues.
| Cle | Valeurs | Par defaut |
|---|---|---|
greetings | String List | none |
Exemple
greetings:
- Hi there!
- Good day.

dialog
Definit le dialogue que le NPC dira pendant qu'un joueur est a proximite (dans le cas du DIALOG interactionType, ce serait le dialogue). Supporte les cles de traduction pour les serveurs multilingues.
| Cle | Valeurs | Par defaut |
|---|---|---|
dialog | String List | none |
Exemple
dialog:
- I like apples!
- Sure is hot.

farewell
Definit le message d'adieu du NPC. Supporte les cles de traduction pour les serveurs multilingues.
| Cle | Valeurs | Par defaut |
|---|---|---|
farewell | String List | none |
Exemple
farewell:
- Until next time!
- Bye!

canTalk
Definit si le NPC peut parler.
| Cle | Valeurs | Par defaut |
|---|---|---|
canTalk | Boolean | true |
Exemple
canTalk: true
activationRadius
Definit le rayon dans lequel un NPC peut detecter un joueur qui s'approche.
| Cle | Valeurs | Par defaut |
|---|---|---|
activationRadius | Double | 3.0 |
Exemple
activationRadius: 3.0
interactionType
Definit le type d'interaction que le NPC effectuera.
| Cle | Valeurs | Par defaut |
|---|---|---|
interactionType | Special [1] | none |
Exemple
interactionType: TELEPORT_BACK
noPreviousLocationMessage
Lorsqu'un NPC Teleporteur n'a pas d'emplacement precedent vers lequel teleporter un joueur, il affichera ce message. Accepte les codes de couleur et les cles de traduction pour les serveurs multilingues.
| Cle | Valeurs | Par defaut |
|---|---|---|
noPreviousLocationMessage | String | none |
Exemple
noPreviousLocationMessage: '&8[EliteMobs] &cCouldn''t send you back to your previous location - no previous location found!'

timeout
Definit le temps, en minutes, avant qu'un NPC ne disparaisse definitivement.
| Cle | Valeurs | Par defaut |
|---|---|---|
timeout | Double | 0 (jamais) |
Exemple
timeout: 0
questFileName
Definit les quetes que le NPC donne.
| Cle | Valeurs | Par defaut |
|---|---|---|
questFileName | String List | none |
Exemple
questFileName:
- my_quest_one.yml
- my_quest_two.yml
disguise
Definit le deguisement LibsDisguises du NPC.
| Cle | Valeurs | Par defaut |
|---|---|---|
disguise | LibsDisguises format | none |
Exemple
disguise: SKELETON

customDisguiseData
Definit les donnees pour un deguisement LibsDisguises personnalise.
| Cle | Valeurs | Par defaut |
|---|---|---|
customDisguiseData | LibsDisguises format | none |
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
Definit le modele personnalise ModelEngine que le NPC utilisera.
| Cle | Valeurs | Par defaut |
|---|---|---|
customModel | String | none |
Exemple
customModel: MY_MODEL_ONE
arena
Definit le nom de fichier de l'arene pour laquelle le NPC ouvrira un menu (necessite le interactionType ARENA_MASTER).
| Cle | Valeurs | Par defaut |
|---|---|---|
arena | Filename | none |
Exemple
arena: my_arena.yml
command
Definit la commande que le NPC executera (necessite le interactionType COMMAND). Les commandes sont executees en tant que joueur, pas en tant que console. Ne pas inclure la barre oblique (/) au debut.
| Cle | Valeurs | Par defaut |
|---|---|---|
command | String | none |
Exemple
command: say Look at me running a command, how cool!
![]()
spawnLocation
Definit l'emplacement d'apparition des NPCs. Vous devriez le configurer via la commande /em spawnnpc <npcfilename.yml>.
| Cle | Valeurs | Par defaut |
|---|---|---|
spawnLocation | String | none |
Exemple
spawnLocation: my_world,10,50,10,0,0
spawnLocations
Definit les emplacements d'apparition des NPCs. Vous devriez les configurer via la commande /em spawnnpc <npcfilename.yml>.
| Cle | Valeurs | Par defaut |
|---|---|---|
spawnLocations | String List | none |
Exemple
spawnLocations:
- my_world,10,50,10,0,0
- my_world,-10,50,-10,0,0
instanced
Definit si le NPC doit etre instance (pour une utilisation dans des donjons instances). Lorsque defini sur true, le NPC est automatiquement clone pour chaque instance de donjon, chaque clone existant dans le monde d'instance correspondant.
| Cle | Valeurs | Par defaut |
|---|---|---|
instanced | Boolean | false |
Exemple
instanced: false
syncMovement
Definit si le mouvement du NPC doit etre synchronise. Utilise pour controler si les mises a jour de position du NPC sont synchronisees.
| Cle | Valeurs | Par defaut |
|---|---|---|
syncMovement | Boolean | false |
Exemple
syncMovement: false
Exemple de configuration 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
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 selection de bonus de competence d'arme |
CHAT | Un clic droit fait defiler le dialog |
CUSTOM_SHOP | Ouvre le menu de la boutique personnalisee |
PROCEDURALLY_GENERATED_SHOP | Ouvre la boutique generee proceduralement |
BAR | Ouvre le menu du bar |
ARENA | Ne fait rien. Utilisez ARENA_MASTER a la place. |
QUEST_GIVER | Ouvre le menu des quetes generees proceduralement |
CUSTOM_QUEST_GIVER | Ouvre le menu de quetes pour un ensemble specifique dans questFileName |
NONE | Aucune interaction |
SELL | Ouvre le menu de vente |
TELEPORT_BACK | Teleporte les joueurs a leur dernier emplacement dans un monde non-elitemobs |
SCRAPPER | Ouvre le menu de mise au rebut |
REPAIRMAN | Ouvre le menu de reparation |
ENCHANTER | Ouvre le menu d'enchantement |
REFINER | OBSOLETE - Fonctionnalite supprimee, ne pas utiliser |
SMELTER | OBSOLETE - Fonctionnalite supprimee, ne pas utiliser |
ENHANCER | OBSOLETE - Fonctionnalite supprimee, ne pas utiliser |
UNBINDER | Ouvre le menu de deliaison |
ARENA_MASTER | Ouvre le menu d'arene pour l'arene definie dans arenaFilename |
COMMAND | Execute la commande definie dans command |
SCROLL_APPLIER | Applique des parchemins d'objets elite aux objets |
ARROW_SHOP | Ouvre le menu de la boutique de fleches |
GAMBLING_BLACKJACK | Ouvre le jeu de hasard blackjack |
GAMBLING_COINFLIP | Ouvre le jeu de hasard pile ou face |
GAMBLING_SLOTS | Ouvre le jeu de hasard machine a sous |
GAMBLING_HIGHERLOWER | Ouvre le jeu de hasard plus haut/plus bas |
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 codes en dur qui ne peuvent pas etre configures :
- IA desactivee : Les NPCs ne peuvent pas se deplacer de maniere autonome. Ils restent a leur point d'apparition.
- Affichage du role : Le texte du role est affiche sur un support d'armure invisible au-dessus du NPC a une hauteur fixe.
- Temps de recharge du dialogue : Les NPCs attendent 3 secondes entre les evenements de parole pour eviter les messages superposes.
- Cycle de vie du chunk : Les NPCs disparaissent lorsque leur chunk est decharge et reapparaissent lorsqu'il est recharge.
