Discord

  • Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Denizen - Skripten, einfach erklärt. [Tutorial]

Goinq

Redstoneengineer
Osterei Experte
Mitglied seit
18 April 2015
Beiträge
37
Guten Tag alle zusammen :D,

mein Name ist Manuel und ich möchte euch heute in die Welt von Denizen führen.

Was ist Denizen?
"Denizen is a very high power script engine for Spigot-enabled Minecraft servers."
Genau wie Skript ist Denizen eine Skirpt-Sprache für Minecraft-Spigot-Server. Denizen hat meiner Meinung nach einen komplexeren Aufbau als Skript.
Bei Denizen kombiniert man verschiedene "Tags" miteinander was am Anfang verwirrend sein kann, aber genau deswegen schreibe ich diesen Guide. Ich möchte euch Denizen genauer beibringen.

Hier noch ein kleiner Auszug aus der Spigot-Seite:
Features include:
- Full high power yet easily learned scripting language!
- Easy to write scripts with any text editor OR even directly in-game!
- The full power of a Minecraft server exposed, not even limited to what standard plugins can access through the API!
- Powerful direct integration with Citizens, as well as many other popular plugins (see Addons section below)!
- Rapid development for new features and bug fixes!
- Powerful and capable enough to even replace major plugins like WorldGuard entirely using scripts (see sample scripts section below)
- More than 30 quick yet informative tutorial videos explaining everything you could ever need to get your server customized to perfection!
- Completely open source (see GitHub link above)!
- Very friendly and helpful support (see Discord link below)!
- And so much more!

Speziell ist auch interessant das Denizen nicht nur für das erstellen von "Pluginartigen"-Skripts ist sondern auch zusammen mit Citizens für Quests und anderes.
(Für genauere Informationen empfehle ich die orginale Video-Tutorialreihe: https://one.denizenscript.com/denizen/vids)

Downloadlinks und Informationslinks:
Spigot-Seite
Dokumentation

Dokumentation
In der Dokumentation findet ihr verschiedene Reiter, welche am Anfang verwirrend zu scheinen. Deswegen erkläre ich diese einmal:
Tag Search
Bei Tag Search findet ihr die sogenannten Tags. Tags werden verwendet um Werte aus Listen, von Minecraft, der Eingabe von Spieler und mehr verwendet.
Ein einfaches Beispiel ist
Code:
<EntityTag.name>
Bei EntityTag kann man zum Beispiel Player eintragen und bekommt dann den namen des Spielers.
Kommen wir zu einem komplexeren Beispiel
Code:
<EntityTag.location.simple.formatted>

Dieser Tag besteht aus dem Tag <EntityTag.location> und dem Tag <LocationTag.simple.formatted>
Für EntityTag können wir wieder zum Beispiel Player  eingeben und für LocationTag wird durch <EntityTag.location> automatisch diese Location/Koordinaten eingefügt.

Der Sinn diese beide Tags zu kombinieren ist dieser:
Ausgabe von <EntityTag.location>: l@-217.48727158324309,75.24433174406282,233.9290830879626,9.097063064575195,-173.7088623046875,world
Ausgabe mit<LocationTag.simple.formatted>: X '218', Y '75', Z '233' in world 'world'
Command Search
Bei Command Search finden wir verschiedene Befehle.
Ein Beispiel ist ein Befehl welcher eine Nachricht zum naheliegenden Objekt gibt, also Spieler, Console, etc.
Code:
- narrate "Hello World!"
Event Search
Hier sind alle mögliche Events aufgelistet.
Beispiel:
Code:
on player (un)equips <item>
Hier wird ein Befehl ausgeführt wenn ein Spieler ein bestimmtes Item ausrüstet/ablegt.

Language Explanation Search
Dieser Punkt ist wahrscheinlich der Wichtigste in der gesamten Dokumentation. Hier wird der aufbau von verschiedene "Container" ausgelistet und somit den Aufgab des Skriptes.

Ein Befehl-Skript:
Code:
Command_Script_Name:
  type: command
  name: mycmd
  permission: my.permission.node
  script:
      - narrate "Hello World!"
Erklärung:
Command_Script_Name - Der Name des Skriptes. Dieser Name darf nicht übereinstimmen mit andere Skripten
Type - Welcher Typ der Container ist. Ist bei jedem Container vorhanden.
Name - Das ist der Command-Name. Also /name.
Permission - Die Permission welche man braucht um den Befehl benützen zu dürfen.
script - Hier stehen die Befehle, welche nacheinander abgearbeitet werden. Hier eine Chatsausgabe an den Spieler der diesen Befehl ausführt.

Ein weiteres Beispiel ist ein Event-Skript:
Code:
Event_name:
    type: world
    on player clicks in inventory:
        - take iteminhand
Wenn der Spieler in das Inventar klickt, nimmt er das angeklickte Item automatisch in die Hand.
Type ist bei einem Event auf world, da ein Event ja mit der Welt interagiert.

Mechanism Search
Hier wird einem erklärt was hinter dem bei dem Tag steckenden Tag steht. Also <EntityTag.location>
Code:
Object    PlayerTag
Name    location
Input    LocationTag
Description    If the player is online, teleports the player to a given location.
Otherwise, sets the player's next spawn location.
Tags    <PlayerTag.location>
Action Search
Dies hier bezieht sich vollständig auf NPCs und wird nur bei NPCs benötigt.



Und damit sind wir auch schon am Ende dieser kleinen Einführung. Wenn Interesse besteht schreibe ich gerne einen weiteren Teil, lasst es mich wissen.
Ich wünsch euch viel Spaß beim Skripten.
-Manuel
 
Oben