101 lines
4.2 KiB
Markdown
101 lines
4.2 KiB
Markdown
---
|
|
title: Systèmes de Gameplay
|
|
type: docs
|
|
weight: 3
|
|
---
|
|
|
|
Les Systèmes de Gameplay fournissent des mécaniques de quêtes, des systèmes de progression et des fonctionnalités de gameplay pour le mode aventure.
|
|
|
|
**Package:** `com.hypixel.hytale.builtin.adventure`
|
|
|
|
{{< cards >}}
|
|
{{< card link="objectives" title="Objectifs" subtitle="Système de quêtes et buts" >}}
|
|
{{< card link="farming" title="Agriculture" subtitle="Croissance des cultures et agriculture" >}}
|
|
{{< card link="npc-objectives" title="Objectifs NPC" subtitle="Quêtes liées aux NPCs" >}}
|
|
{{< card link="memories" title="Mémoires" subtitle="Suivi d'état persistant" >}}
|
|
{{< card link="shop" title="Boutique" subtitle="Commerce et échanges" >}}
|
|
{{< card link="camera-effects" title="Effets Caméra" subtitle="Contrôle caméra cinématique" >}}
|
|
{{< card link="reputation" title="Réputation" subtitle="Système de standing de faction" >}}
|
|
{{< /cards >}}
|
|
|
|
## Vue d'Ensemble de l'Architecture
|
|
|
|
Le système Adventure est composé de plusieurs plugins :
|
|
|
|
```
|
|
Système Adventure
|
|
├── ObjectivePlugin (objectives/)
|
|
│ ├── Objective - Instance de quête avec TaskSets
|
|
│ ├── ObjectiveTask - Types de tâches individuelles
|
|
│ ├── ObjectiveCompletion - Gestionnaires de récompenses
|
|
│ └── ObjectiveHistoryComponent - Suivi de progression
|
|
├── FarmingPlugin (farming/)
|
|
│ ├── FarmingBlock/FarmingBlockState - État des cultures
|
|
│ ├── TilledSoilBlock - Mécaniques de terre labourée
|
|
│ ├── GrowthModifier - Engrais, eau, lumière
|
|
│ └── CoopBlock/CoopResidentComponent - Poulaillers
|
|
├── NPCObjectivesPlugin (npcobjectives/)
|
|
│ ├── KillTask/BountyTask - Objectifs de combat
|
|
│ ├── KillTrackerSystem - Compteur d'éliminations
|
|
│ └── Actions NPC (StartObjective, CompleteTask)
|
|
├── MemoriesPlugin (memories/)
|
|
│ ├── PlayerMemories - Composant mémoire joueur
|
|
│ ├── Memory/MemoryProvider - Types de mémoires
|
|
│ └── NPCMemory - Mémoires liées aux NPCs
|
|
├── ShopPlugin (shop/)
|
|
│ ├── ShopAsset - Définitions de boutiques
|
|
│ ├── BarterShopAsset - Boutiques de troc
|
|
│ └── ShopElement/GiveItemInteraction
|
|
├── CameraPlugin (camera/)
|
|
│ ├── CameraShake - Effets de tremblement
|
|
│ ├── ViewBobbing - Balancement de caméra
|
|
│ └── CameraEffectSystem
|
|
└── ReputationPlugin (reputation/)
|
|
├── ReputationGroup - Définitions de factions
|
|
├── ReputationRank - Niveaux de standing
|
|
└── ReputationGroupComponent - Faction du NPC
|
|
```
|
|
|
|
## Sous-packages
|
|
|
|
| Package | Fichiers | Description |
|
|
|---------|----------|-------------|
|
|
| `objectives/` | 82 | Système de quêtes et objectifs |
|
|
| `farming/` | 24 | Mécaniques d'agriculture |
|
|
| `npcobjectives/` | 22 | Objectifs liés aux NPCs (tâches d'élimination) |
|
|
| `memories/` | 19 | Persistance d'état et collectibles |
|
|
| `shop/` | 16 | Système de commerce et troc |
|
|
| `camera/` | 13 | Effets caméra (tremblement, balancement) |
|
|
| `reputation/` | 12 | Système de réputation de faction |
|
|
| `objectivereputation/` | 4 | Récompenses de réputation pour objectifs |
|
|
| `npcreputation/` | 2 | Attitude NPC basée sur réputation |
|
|
| `shopreputation/` | 1 | Items de boutique conditionnés par réputation |
|
|
|
|
## Exemple Rapide
|
|
|
|
```java
|
|
// Démarrer un objectif pour un joueur
|
|
ObjectivePlugin objectives = ObjectivePlugin.get();
|
|
objectives.startObjective(player, "collect_wood");
|
|
|
|
// Changer la réputation avec une faction
|
|
ReputationPlugin rep = ReputationPlugin.get();
|
|
rep.changeReputation(player, "village_faction", 10, componentAccessor);
|
|
|
|
// Obtenir le rang de réputation
|
|
ReputationRank rank = rep.getReputationRank(store, playerRef, "village_faction");
|
|
|
|
// Vérifier si le joueur a une mémoire
|
|
MemoriesPlugin memories = MemoriesPlugin.get();
|
|
boolean hasMemory = memories.hasRecordedMemory(someMemory);
|
|
```
|
|
|
|
## Enregistrement des Plugins
|
|
|
|
Chaque sous-système adventure est un plugin séparé qui enregistre :
|
|
- **Composants** sur EntityStore ou ChunkStore
|
|
- **Interactions** pour les interactions bloc/entité
|
|
- **Assets** chargés depuis fichiers JSON/YAML
|
|
- **Systèmes** pour le traitement ECS
|
|
- **Commandes** pour l'administration
|