ArmorStands aktualisiert
122
ArmorStands.md
122
ArmorStands.md
@@ -1,67 +1,125 @@
|
||||
# ArmorStand & NPC System
|
||||
|
||||
Ein hochoptimiertes Modul für interaktive NPCs, die nicht nur dekorativ sind, sondern intelligent auf Spieler und die Ingame-Zeit reagieren.
|
||||
Ein hochoptimiertes Modul für interaktive NPCs, die nicht nur dekorativ sind, sondern intelligent auf Spieler, die Ingame-Zeit und komplexe Dialogstrukturen reagieren. Das System kombiniert flüssige Animationen mit einem persistenten Datenmanagement.
|
||||
|
||||
## 📊 Befehlsübersicht
|
||||
|
||||
| Befehl | Beschreibung | Berechtigung |
|
||||
|--------|--------------|--------------|
|
||||
| `/nexustools` | Öffnet die Editor-GUI für den fokussierten NPC | `nexuslobby.armorstand.use` |
|
||||
| `/nexuscmd <cmd>` | Bindet einen Befehl an den NPC (Rechtsklick) | `nexuslobby.armorstand.cmd` |
|
||||
| `/nexustools dynamic` | Aktiviert/Deaktiviert die KI-Logik (Schwert/Fackel) | `nexuslobby.admin` |
|
||||
| `/nexuscmd name <Text>` | Setzt einen farbigen Anzeigenamen & erstellt ein Status-Backup | `nexuslobby.armorstand.cmd` |
|
||||
| `/nexuscmd lookat` | Schaltet den intelligenten Blickkontakt (KI) zum Spieler um | `nexuslobby.armorstand.lookat` |
|
||||
| `/nexuscmd add <s1> <s2> <Typ> <Cmd>` | Bindet Befehle an Slots (0-9). Typen: player, console, bungee | `nexuslobby.armorstand.cmd` |
|
||||
| `/nexuscmd conv` | Öffnet das Menü für das Dialog-System | `nexuslobby.armorstand.cmd` |
|
||||
| `/nexuscmd clearbubbles` | Entfernt hängengebliebene Sprechblasen im Umkreis | `nexuslobby.armorstand.cmd` |
|
||||
|
||||
## 💬 Conversation System (Dialog-Logik)
|
||||
|
||||
Das `ConversationManager`-Modul ermöglicht es, zwei NPCs miteinander sprechen zu lassen. Die Dialoge werden visuell über Sprechblasen (Marker-ArmorStands) dargestellt und durch Sounds untermalt.
|
||||
|
||||
### Workflow zum Erstellen eines Dialogs
|
||||
|
||||
1. **Selektion:** Markiere NPC 1 mit `/nexuscmd conv select1` und NPC 2 mit `/nexuscmd conv select2`.
|
||||
2. **Verknüpfung:** Nutze `/nexuscmd conv link <Dialog-ID>`, um die NPCs permanent in der `conversations.yml` zu verbinden.
|
||||
3. **Testen:** Starte den Dialog manuell mit `/nexuscmd conv start <Dialog-ID>`.
|
||||
4. **Entkoppeln:** Mit `/nexuscmd conv unlink` entfernst du die Verknüpfung und löschst den Eintrag aus der Datenbank.
|
||||
|
||||
### Features
|
||||
|
||||
* **🔊 Audio-Visuelles Feedback:** Jeder Satz wird durch einen dezenten Sound-Effekt und eine schwebende Text-Bubble (3 Sek. Sichtbarkeit) begleitet.
|
||||
* **🤖 Automatisierung:** Das System prüft periodisch, ob Spieler in der Nähe (15 Blöcke) sind, und startet Dialoge automatisch, um die Lobby lebendig zu gestalten.
|
||||
|
||||
## 🌓 Dynamic ArmorStands (KI-Modul)
|
||||
|
||||
Das `DynamicArmorStandModule` sorgt für eine lebendige Atmosphäre in der Lobby. Ein markierter NPC nutzt folgende Automatismen:
|
||||
Das `DynamicArmorStandModule` sorgt für eine immersive Atmosphäre durch automatisierte Verhaltensmuster:
|
||||
|
||||
* **⚔️ Wachdienst-Modus (Spieler-Nähe):**
|
||||
* **⚔️ Wachdienst-Modus:**
|
||||
* Erkennt Spieler im Umkreis von 2 Blöcken.
|
||||
* Der NPC zieht flüssig sein Schwert (Main-Hand) und geht in eine Abwehr-Pose.
|
||||
* Der NPC zieht flüssig sein Schwert und geht in eine Abwehr-Pose.
|
||||
* Sobald der Spieler den Bereich verlässt, wird das Schwert weggesteckt.
|
||||
|
||||
* **🌙 Nacht-Logik (13.000 - 23.000 Ticks):**
|
||||
* Der NPC rüstet automatisch eine Fackel in der Off-Hand aus.
|
||||
* Sternen-Effekt: Ein Partikel-Emitter (`WAX_OFF`) spawnt Sterne exakt an der Fackelspitze (mathematisch berechnet: vorn-links-oben).
|
||||
* Rüstet automatisch eine Fackel in der Off-Hand aus.
|
||||
* **✨ Partikel-Präzision:** Nutzt mathematische Vektorberechnung, um Partikel exakt an der Fackelspitze zu emittieren, unabhängig von der Rotation des NPCs.
|
||||
|
||||
* **👀 LookAt-Feature:**
|
||||
* NPCs verfolgen den Kopf des Spielers in Echtzeit, sofern der Tag `as_lookat` aktiv ist.
|
||||
|
||||
* **💾 Persistenz:** Dank `PersistentDataContainer` bleiben alle KI-Einstellungen auch nach einem Server-Restart oder Chunk-Reload erhalten.
|
||||
|
||||
## 📜 Command & Status Binding
|
||||
|
||||
Über die `nexuscmd`-Schnittstelle können NPCs als komplexe Interaktionspunkte genutzt werden.
|
||||
|
||||
### Bungee-Status-Integration
|
||||
|
||||
Du kannst NPCs direkt mit deinem BungeeCord-Netzwerk koppeln:
|
||||
```bash
|
||||
/nexuscmd add 1 0 bungee Citybuild
|
||||
```
|
||||
|
||||
Der NPC zeigt automatisch den Status des Servers "Citybuild" an (Online/Offline/Spielerzahl), sofern dies im `ServerStatusModule` konfiguriert ist.
|
||||
|
||||
### Status-Backups (asname)
|
||||
|
||||
Um zu verhindern, dass Namen durch andere Plugins oder Server-Crashes verloren gehen, speichert das System den Namen als Scoreboard-Tag (`asname:NAME`). Bei jedem Chunk-Load wird die Korrektheit des Namens validiert.
|
||||
|
||||
### Beispiele
|
||||
```bash
|
||||
/nexuscmd add 0 0 player spawn
|
||||
```
|
||||
Teleportiert den Spieler zurück zum Startpunkt.
|
||||
```bash
|
||||
/nexuscmd add 1 0 console give {player} diamond 1
|
||||
```
|
||||
Gibt dem Spieler einen Diamanten (Server-Befehl).
|
||||
```bash
|
||||
/nexuscmd name §6§lTorwächter
|
||||
```
|
||||
Setzt einen goldenen Namen mit Backup.
|
||||
|
||||
## 🎨 ArmorStand Editor (`/nexustools`)
|
||||
|
||||
### Verwendung
|
||||
|
||||
1. Schaue den gewünschten ArmorStand direkt an (max. 5 Blöcke Distanz).
|
||||
1. Schaue den gewünschten ArmorStand direkt an (max. 8 Blöcke Distanz dank RayTrace-Technologie).
|
||||
2. Führe `/nexustools` aus, um das Menü zu öffnen.
|
||||
|
||||
| Funktion | Icon | Effekt |
|
||||
|----------|------|--------|
|
||||
| Kopf/Körper | `PLAYER_HEAD` | Stufenlose Rotation aller Gliedmaßen. |
|
||||
| Kopf/Körper | `PLAYER_HEAD` | Stufenlose Rotation (1° Schritte via Shift). |
|
||||
| Arme | `STICK` | Schaltet Arme an/aus (Nötig für Items). |
|
||||
| Sichtbarkeit | `GLASS_PANE` | Macht den Stand unsichtbar (für NPC-Namen). |
|
||||
| Dynamic KI | `NETHER_STAR` | Aktiviert Schwert-Abwehr & Nacht-Fackel. |
|
||||
| Sichtbarkeit | `GLASS_PANE` | Macht den Stand unsichtbar (Perfekt für reine Hologramm-NPCs). |
|
||||
| Dynamic KI | `NETHER_STAR` | Toggles Schwert-Abwehr & Nacht-Logik. |
|
||||
| Fackel-Sterne | `GOLD_NUGGET` | Schaltet die Partikel-Effekte der Fackel ein. |
|
||||
| Gravitation | `FEATHER` | Lässt den NPC in der Luft schweben. |
|
||||
| Gravitation | `FEATHER` | Schaltet die Schwerkraft aus (Schwebe-NPCs). |
|
||||
| Baseplate | `STONE_SLAB` | Entfernt die Steinplatte am Boden. |
|
||||
|
||||
**Tipp:** Halte Shift (Schleichen) während der Rotation gedrückt, um das Feintuning (1°-Schritte) zu nutzen.
|
||||
|
||||
## 📜 Command Binding (`/nexuscmd`)
|
||||
## ⚙️ Dateistruktur
|
||||
|
||||
Macht NPCs interaktiv. Nutze den Platzhalter `{player}` für spielerspezifische Aktionen.
|
||||
* **armorstands.yml:** Speichert Positionen und grundlegende KI-Einstellungen.
|
||||
* **conversations.yml:** Enthält alle Dialogtexte und die Verknüpfungen (links) zwischen den NPC-UUIDs.
|
||||
|
||||
### Beispiele
|
||||
|
||||
* `/nexuscmd serverswitcher` – Öffnet das Portal-Menü.
|
||||
* `/nexuscmd tell {player} §aViel Erfolg bei deinem Abenteuer!` – Persönliche Nachricht.
|
||||
* `/nexuscmd spawn` – Teleportiert den Spieler zurück zum Startpunkt.
|
||||
|
||||
## ⚙️ Konfiguration (`armorstands.yml`)
|
||||
### Beispiel: Dialog-Konfiguration
|
||||
```yaml
|
||||
# Globale Einstellungen
|
||||
# Beispiel für einen Dialog in der conversations.yml
|
||||
conversations:
|
||||
begruessung_lobby:
|
||||
dialogue:
|
||||
- "&eWächter: &7Willkommen im Nexus, &f{player}&7!"
|
||||
- "&aBürger: &7Schön dich wiederzusehen!"
|
||||
```
|
||||
|
||||
### Beispiel: Globale Einstellungen
|
||||
```yaml
|
||||
# Globale Einstellungen in armorstands.yml
|
||||
settings:
|
||||
update-interval-ticks: 5 # KI-Prüfungsrate (0.25 Sek für flüssige Animation)
|
||||
particle-type: "WAX_OFF"
|
||||
detection-range: 2.0
|
||||
|
||||
|
||||
gui:
|
||||
title: "§0§lNPC-EDITOR"
|
||||
items:
|
||||
@@ -70,11 +128,21 @@ gui:
|
||||
stars_enabled: "§6Sternen-Effekt: §aAN"
|
||||
```
|
||||
|
||||
## 💡 Best Practice: Der "Viper-Torwächter"
|
||||
## 💡 Profi-Tipp: Die "Lebendige Lobby"
|
||||
|
||||
Platziere zwei NPCs am Spawn-Eingang. Verknüpfe sie mit einer Dialog-ID "begruessung". Aktiviere bei beiden `/nexuscmd lookat`.
|
||||
|
||||
**Ergebnis:** Wenn ein Spieler spawnt, drehen beide NPCs den Kopf zum Spieler, begrüßen ihn per Sprechblase und führen einen kurzen Smalltalk aus, bevor sie wieder in ihre Ausgangsposition zurückkehren.
|
||||
|
||||
### Bonus: Der "Viper-Torwächter"
|
||||
|
||||
Um einen optimalen Eindruck in der weißen Lobby zu hinterlassen:
|
||||
|
||||
1. Platziere den Stand, gib ihm eine dunkle Rüstung (Kontrast!).
|
||||
2. Nutze `/nexustools`, aktiviere Arme und die Dynamic KI.
|
||||
3. Setze einen Befehl mit `/nexuscmd`, der die Spieler zum Haupt-Spielmodus führt.
|
||||
4. **Ergebnis:** Ein NPC, der nachts den Weg leuchtet, bei Annäherung salutiert/das Schwert zieht und per Klick als Wegweiser dient.
|
||||
3. Setze einen Befehl mit `/nexuscmd add 0 0 player hub`, der die Spieler zum Haupt-Spielmodus führt.
|
||||
4. **Ergebnis:** Ein NPC, der nachts den Weg leuchtet, bei Annäherung salutiert/das Schwert zieht und per Klick als Wegweiser dient.
|
||||
|
||||
## 🔧 Entwickler-Hinweis
|
||||
|
||||
Das System nutzt `RayTraceResult` für eine präzise Auswahl von Entities durch Wände oder andere Hindernisse hindurch (Reichweite 8 Blöcke). Dies verhindert Fehlkonfigurationen von eng beieinander stehenden NPCs.
|
||||
Reference in New Issue
Block a user