From a535a19186ccf5c1831277b5cad4a67e0959181a Mon Sep 17 00:00:00 2001 From: M_Viper Date: Sat, 24 Jan 2026 15:05:04 +0000 Subject: [PATCH] ArmorStands aktualisiert --- ArmorStands.md | 122 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 95 insertions(+), 27 deletions(-) diff --git a/ArmorStands.md b/ArmorStands.md index e68392f..d475ab9 100644 --- a/ArmorStands.md +++ b/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 ` | Bindet einen Befehl an den NPC (Rechtsklick) | `nexuslobby.armorstand.cmd` | -| `/nexustools dynamic` | Aktiviert/Deaktiviert die KI-Logik (Schwert/Fackel) | `nexuslobby.admin` | +| `/nexuscmd name ` | 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 ` | 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 `, um die NPCs permanent in der `conversations.yml` zu verbinden. +3. **Testen:** Starte den Dialog manuell mit `/nexuscmd conv start `. +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. \ No newline at end of file +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. \ No newline at end of file