Init
This commit is contained in:
374
content/world/entities/npc/npc-commands.fr.md
Normal file
374
content/world/entities/npc/npc-commands.fr.md
Normal file
@@ -0,0 +1,374 @@
|
||||
---
|
||||
title: Commandes NPC
|
||||
type: docs
|
||||
weight: 5
|
||||
---
|
||||
|
||||
Le système NPC inclut 23 commandes admin et debug pour gérer et tester les NPCs.
|
||||
|
||||
**Package:** `com.hypixel.hytale.server.npc.commands`
|
||||
|
||||
## Commandes de Spawn
|
||||
|
||||
### /npc spawn
|
||||
|
||||
Fait apparaître un NPC à une position :
|
||||
|
||||
```
|
||||
/npc spawn <npc_type> [position] [--role <role>] [--name <name>]
|
||||
```
|
||||
|
||||
**Arguments :**
|
||||
| Argument | Type | Description |
|
||||
|----------|------|-------------|
|
||||
| `npc_type` | String | ID d'asset NPC |
|
||||
| `position` | Position | Position de spawn (défaut: position du joueur) |
|
||||
| `--role` | String | Remplacer le rôle par défaut |
|
||||
| `--name` | String | Nom d'affichage personnalisé |
|
||||
|
||||
**Exemples :**
|
||||
```
|
||||
/npc spawn villager
|
||||
/npc spawn guard ~ ~1 ~ --role patrol_guard
|
||||
/npc spawn merchant --name "Bob le Marchand"
|
||||
```
|
||||
|
||||
### /npc despawn
|
||||
|
||||
Supprime un NPC :
|
||||
|
||||
```
|
||||
/npc despawn <target>
|
||||
```
|
||||
|
||||
**Arguments :**
|
||||
| Argument | Type | Description |
|
||||
|----------|------|-------------|
|
||||
| `target` | NPC | NPC cible (raycast ou sélecteur) |
|
||||
|
||||
### /npc despawnall
|
||||
|
||||
Supprime tous les NPCs dans un rayon :
|
||||
|
||||
```
|
||||
/npc despawnall [radius]
|
||||
```
|
||||
|
||||
**Arguments :**
|
||||
| Argument | Type | Description |
|
||||
|----------|------|-------------|
|
||||
| `radius` | Float | Rayon en blocs (défaut: 50) |
|
||||
|
||||
## Commandes d'Information
|
||||
|
||||
### /npc info
|
||||
|
||||
Affiche les informations d'un NPC :
|
||||
|
||||
```
|
||||
/npc info [target]
|
||||
```
|
||||
|
||||
**Sortie :**
|
||||
```
|
||||
NPC Info: Villageois (villager_001)
|
||||
Position: 100.5, 64.0, -200.3
|
||||
Role: villager_role
|
||||
State: IDLE
|
||||
Health: 100/100
|
||||
Target: None
|
||||
Current Instruction: Wander
|
||||
```
|
||||
|
||||
### /npc list
|
||||
|
||||
Liste tous les NPCs :
|
||||
|
||||
```
|
||||
/npc list [--radius <radius>] [--type <type>]
|
||||
```
|
||||
|
||||
**Arguments :**
|
||||
| Argument | Type | Description |
|
||||
|----------|------|-------------|
|
||||
| `--radius` | Float | Rayon de recherche |
|
||||
| `--type` | String | Filtrer par type de NPC |
|
||||
|
||||
### /npc debug
|
||||
|
||||
Active/désactive la visualisation debug :
|
||||
|
||||
```
|
||||
/npc debug <mode>
|
||||
```
|
||||
|
||||
**Modes :**
|
||||
| Mode | Description |
|
||||
|------|-------------|
|
||||
| `path` | Afficher le pathfinding |
|
||||
| `sensors` | Afficher les portées des capteurs |
|
||||
| `state` | Afficher l'état IA |
|
||||
| `target` | Afficher le ciblage |
|
||||
| `all` | Tout afficher |
|
||||
| `off` | Désactiver le debug |
|
||||
|
||||
## Commandes de Comportement
|
||||
|
||||
### /npc role
|
||||
|
||||
Change le rôle du NPC :
|
||||
|
||||
```
|
||||
/npc role <target> <role>
|
||||
```
|
||||
|
||||
**Exemples :**
|
||||
```
|
||||
/npc role @nearest guard_role
|
||||
/npc role @e[type=villager] merchant_role
|
||||
```
|
||||
|
||||
### /npc state
|
||||
|
||||
Force l'état du NPC :
|
||||
|
||||
```
|
||||
/npc state <target> <state>
|
||||
```
|
||||
|
||||
**États :**
|
||||
```
|
||||
/npc state @nearest IDLE
|
||||
/npc state @nearest ATTACKING
|
||||
/npc state @nearest FLEEING
|
||||
```
|
||||
|
||||
### /npc target
|
||||
|
||||
Définit la cible du NPC :
|
||||
|
||||
```
|
||||
/npc target <npc> <target_entity>
|
||||
```
|
||||
|
||||
**Exemples :**
|
||||
```
|
||||
/npc target @nearest @p
|
||||
/npc target guard_01 @e[type=zombie,limit=1]
|
||||
```
|
||||
|
||||
### /npc cleartarget
|
||||
|
||||
Efface la cible du NPC :
|
||||
|
||||
```
|
||||
/npc cleartarget <target>
|
||||
```
|
||||
|
||||
## Commandes de Mouvement
|
||||
|
||||
### /npc moveto
|
||||
|
||||
Ordonne au NPC de se déplacer vers une position :
|
||||
|
||||
```
|
||||
/npc moveto <target> <position>
|
||||
```
|
||||
|
||||
**Exemples :**
|
||||
```
|
||||
/npc moveto @nearest ~ ~ ~10
|
||||
/npc moveto guard_01 100 64 -200
|
||||
```
|
||||
|
||||
### /npc follow
|
||||
|
||||
Ordonne au NPC de suivre une entité :
|
||||
|
||||
```
|
||||
/npc follow <npc> <target> [distance]
|
||||
```
|
||||
|
||||
**Exemples :**
|
||||
```
|
||||
/npc follow @nearest @p 3.0
|
||||
```
|
||||
|
||||
### /npc stop
|
||||
|
||||
Arrête le mouvement du NPC :
|
||||
|
||||
```
|
||||
/npc stop <target>
|
||||
```
|
||||
|
||||
### /npc patrol
|
||||
|
||||
Définit un chemin de patrouille :
|
||||
|
||||
```
|
||||
/npc patrol <target> <point1> <point2> [point3...]
|
||||
```
|
||||
|
||||
**Exemples :**
|
||||
```
|
||||
/npc patrol guard_01 0 64 0 10 64 0 10 64 10 0 64 10
|
||||
```
|
||||
|
||||
### /npc home
|
||||
|
||||
Définit la position d'origine du NPC :
|
||||
|
||||
```
|
||||
/npc home <target> [position]
|
||||
```
|
||||
|
||||
## Commandes Blackboard
|
||||
|
||||
### /npc blackboard get
|
||||
|
||||
Obtient une valeur du blackboard :
|
||||
|
||||
```
|
||||
/npc blackboard get <target> <key>
|
||||
```
|
||||
|
||||
**Exemples :**
|
||||
```
|
||||
/npc blackboard get @nearest alert_level
|
||||
/npc blackboard get guard_01 home_position
|
||||
```
|
||||
|
||||
### /npc blackboard set
|
||||
|
||||
Définit une valeur du blackboard :
|
||||
|
||||
```
|
||||
/npc blackboard set <target> <key> <value>
|
||||
```
|
||||
|
||||
**Exemples :**
|
||||
```
|
||||
/npc blackboard set @nearest alert_level 1.0
|
||||
/npc blackboard set @nearest is_hostile true
|
||||
```
|
||||
|
||||
### /npc blackboard clear
|
||||
|
||||
Efface le blackboard :
|
||||
|
||||
```
|
||||
/npc blackboard clear <target> [key]
|
||||
```
|
||||
|
||||
## Commandes IA
|
||||
|
||||
### /npc think
|
||||
|
||||
Force un cycle de décision IA :
|
||||
|
||||
```
|
||||
/npc think <target>
|
||||
```
|
||||
|
||||
### /npc instruction
|
||||
|
||||
Force une instruction :
|
||||
|
||||
```
|
||||
/npc instruction <target> <instruction>
|
||||
```
|
||||
|
||||
**Exemples :**
|
||||
```
|
||||
/npc instruction @nearest flee
|
||||
/npc instruction guard_01 attack
|
||||
```
|
||||
|
||||
### /npc sensor
|
||||
|
||||
Active/désactive un capteur :
|
||||
|
||||
```
|
||||
/npc sensor <target> <sensor> <enabled>
|
||||
```
|
||||
|
||||
**Exemples :**
|
||||
```
|
||||
/npc sensor @nearest visual false
|
||||
/npc sensor @nearest audio true
|
||||
```
|
||||
|
||||
## Commandes de Faction
|
||||
|
||||
### /npc faction
|
||||
|
||||
Définit la faction du NPC :
|
||||
|
||||
```
|
||||
/npc faction <target> <faction>
|
||||
```
|
||||
|
||||
**Exemples :**
|
||||
```
|
||||
/npc faction @nearest town_guard
|
||||
/npc faction villager_01 merchants
|
||||
```
|
||||
|
||||
### /npc relation
|
||||
|
||||
Définit la relation entre factions :
|
||||
|
||||
```
|
||||
/npc relation <faction1> <faction2> <relation>
|
||||
```
|
||||
|
||||
**Relations :** `ALLIED`, `FRIENDLY`, `NEUTRAL`, `UNFRIENDLY`, `HOSTILE`
|
||||
|
||||
**Exemples :**
|
||||
```
|
||||
/npc relation guards bandits HOSTILE
|
||||
/npc relation merchants town_guard ALLIED
|
||||
```
|
||||
|
||||
## Permissions des Commandes
|
||||
|
||||
| Commande | Permission |
|
||||
|----------|------------|
|
||||
| `/npc spawn` | `hytale.command.npc.spawn` |
|
||||
| `/npc despawn` | `hytale.command.npc.despawn` |
|
||||
| `/npc info` | `hytale.command.npc.info` |
|
||||
| `/npc debug` | `hytale.command.npc.debug` |
|
||||
| `/npc role` | `hytale.command.npc.role` |
|
||||
| `/npc blackboard` | `hytale.command.npc.blackboard` |
|
||||
|
||||
## Enregistrer des Commandes NPC Personnalisées
|
||||
|
||||
```java
|
||||
public class MyNPCCommand extends AbstractCommand {
|
||||
public MyNPCCommand() {
|
||||
super("npc custom", "Commande NPC personnalisée");
|
||||
withRequiredArg("target", "NPC cible", ArgTypes.NPC_REF);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected CompletableFuture<Void> execute(CommandContext ctx) {
|
||||
NPCEntity npc = ctx.get("target");
|
||||
// Logique personnalisée
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// Enregistrer dans le setup du plugin
|
||||
getCommandRegistry().register(new MyNPCCommand());
|
||||
```
|
||||
|
||||
## Bonnes Pratiques
|
||||
|
||||
{{< callout type="info" >}}
|
||||
**Directives des Commandes :**
|
||||
- Utilisez des sélecteurs comme `@nearest` pour cibler les NPCs
|
||||
- Les commandes debug sont précieuses pour tester l'IA
|
||||
- Les commandes blackboard permettent la modification du comportement à l'exécution
|
||||
- Utilisez les vérifications de permissions pour les commandes admin
|
||||
{{< /callout >}}
|
||||
Reference in New Issue
Block a user