Paste #50794: Untitled Paste

Date: 2018/11/25 06:46:53 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


# Erstellt von: YMarshall
# Weihnachten-2018 
# Projekt: Tuerchen/Weihnachtsmarkt/Quest/Sonstiges
# Koordinaten:
#----------------------------------------------------------------------------------------- 

# Der folgende Name wird später auch Ingame für die Vergabe an den NPC und für den Dateinamen genutzt.
# Für eine gute Übersicht sollte der Name deshalb möglichst Präzise sein.
# Passe dafür im folgenden Bitte das Projekt und den NPC-Namen an.
'WeihnachtsScript_2018_Weihnachtsmarkt_Bernard':
# Im nächsten Schritt erhält dein NPC alle wichtigen Grundeinstellungen. Dazu gehören der Name, der Skin
# aber auch allgemeine Einstellungen.
  # Assignment bedeutet im folgenden, dass man dieses Skript später einem NPC zuweisen kann.
  type: assignment
  interact scripts:
  # Der folgende Name ist später unsere Grundlage für die Interaktion mit dem NPC.
  # Wie bereits zuvor solltest du also auch hier den Projekt- und den NPC-Namen anpassen.
  - WeihnachtsScript_2018_Origo_Weihnachtsmarkt_Bernard_Interaction

  # Ehe wir uns der Interaktion widmen, stellen wir in dem folgenden Bereich 
  # ersteinmal einige grundlegende Einstellungen ein.
  actions:
    on assignment:
    # Die folgenden Befehle aktivieren Ingame überprüfungen, wenn man mit einem NPC interagiert und werden
    # in den folgenden Zeilen näher beschrieben.
    # 
    # Der "Click" Trigger:      Aktiviert die Interaktion per Klick
    # Der "Chat" Trigger:       Aktiviert die Interaktion über den Chat
    # Der "proximity" Trigger:  Aktiviert die Interaktion in einem Bestimmten ingame Radius.
    #
    # Später werden wir diese Interaktionsmöglichkeiten nutzen, um beispielsweise bei einem Klick
    # eine bestimmte Chatnachricht zu versenden.
    - trigger name:click toggle:true
    - trigger name:chat toggle:true
    - trigger name:proximity toggle:true radius:5
    # ****Hier wird nun der spätere NPC von außen Gestaltet.**** 
    # Dafür wird er zuerst selektiert.
    - ^execute as_op "npc select <npc.id>"
    # Im nächsten Schritt wird über den "lookclose" Befehl eingestellt, dass er sich zu dem Spieler dreht,
    # der ihm am nächsten steht.
    - ^execute as_op "npc lookclose"
    # Hier hast du nun die Möglichkeit deinem NPC einen Namen zu geben.
    - ^execute as_op "npc rename Bernard"
    # Als nächstes kannst du deinem NPC einen Skin zuweisen.
    # Dafür kannst du entweder direkt einen Spielernamen auswählen, dessen Skin dir gefällt,
    # oder du schaust dich nach einem alternativen Skin um.
    # Weihnachtliche Skins findest du hier: https://de.namemc.com/minecraft-skins/tagged/christmas
    # Sobald du dort einen Skin gefunden hast kannst du ihn anklicken und dort unter "Profile" einen
    # Spielernamen auswählen, den du dann hier einträgst.
    - ^execute as_op "npc skin -p 069p"

# Nachdem nun alle grundlegenden Einstellungen vorgenommen wurden, wenden wir uns nun der eigentlichen Interaktion zu.
# Dabei habt ihr im folgenden viele Möglichkeiten euren NPC zu gestalten. Es gibt dabei erst einmal kein richtig oder
# falsch.
#
# Zuvor sollten auch hier noch einmal der Projekt- und der NPC-Name genauso wie zuvor angepasst werden.
# Achtung! Hier muss der gleiche Name wie in Zeile 18 stehen.
'WeihnachtsScript_2018_Origo_Weihnachtsmarkt_Bernard_Interaction':
  type: interact
  steps:
  # Der folgende Bereich ist in die zuvor aktivierten Interaktionen (Click, Chat, Proximity) unterteilt. 
  # Du kannst dich entweder für einzelne von ihnen entscheiden oder alle nutzen.
    default:   
      # Den proximity Trigger kannst du nutzen, um einem Spieler bei dem Betreten (entry)/ Verlassen (exit)
      # des zuvor gesetzten Radius eine Nachricht auszugeben.
      proximity trigger:
        entry:
          script:
          - chat "<&7>Komm näher <player.name>, kauf dir eine heiße Bratwurst!"
          - random:
                - chat "<&7>Heiße Bratwürste!"
                - chat "<&7>Soll ich dir mal eine richtige Bratwurst zeigen?"
                - chat "<&7>Nur eine Bratwurst gibt dir die nötige Kraft!"
        exit:  
          script:
          - chat "<&7>Tschüss!"

      # Der Click-Trigger ist der meistgenutzte Trigger. Mit ihm könnt ihr einfache Chatnachrichten per Klick
      # versenden.
      # 
      # Das eigentliche Skript besteht hierbei in der Regel aus zwei Bestandteilen. 
      # Den eigentlichen Chatnachrichten und den dazwischen liegenden Wartezeiten.
      # In den Chatnachrichten hast du die Möglichkeit Farbcodes in dem folgenden Format zu verwenden:
      # <Farbcode> also z.B. <&1>
      #
      # Die allgemeine Textfarbe sollte dennoch stets: <&7> sein.
      click trigger:
        script:
        - chat "<&7>Hast du auch so einen Bärenhunger? (Ja/Nein)"
        - narrate "<&7>Antworte im Chat mit Ja oder Nein."    
      # Der Chat Trigger ermöglicht nun die wirkliche Interaktion. Hier könnt ihr Fragebeantwortungen oder auch 
      # zusätzliche Konversationen definieren.
      chat trigger:
        # Die 1 steht hier für die erste Antwortoption. Es können beliebig weitere Antwortoptionen hinzugefügt
        # werden. 
        '1':
            # In den einzelnen Optionen finden sich nun erneut die Trigger und die Skript Komponente.
            # 
            # Das "script" kann hier genauso wie bei dem click trigger ergänzt werden.
            # Durch den Trigger wird festgelegt, welches Wort du dem NPC schreiben musst, damit dieser das
            # folgende script ausgibt.
            #
            # Beispiel:
            # trigger: "/Ja/, ich möchte gerne eine Zuckerstange kaufen."
            # Hier wird das Wort "Ja" abgefragt.
            trigger: "/Ja/, ich möchte eine Bratwurst."
            script:
            - chat "Dann kauf dir doch eine heiße Bratwurst!"
        '2':
            trigger: "/Nein/, ich habe mich schon mit Waffeln voll gestopft."
            script:
            - chat "Dann noch einen schönen Tag, komm gerne wieder wenn du wieder hunger hast!"


        # Diese Antwortoption fängt abschließend alle Antworten ab. Wenn man sich also vertippt kann man hier
        # eine zusätzliche Antwort beschreiben.
        'CatchAll':
          trigger: /REGEX:\w+/
          script:
            - chat "Tut mir leid, ich habe dich nicht verstanden. Antworte bitte mit den Antwortmöglichkeiten, die ich dir gegeben habe."