[Tutorial]Eine simple Quest erstellen Teil 2

Dieses Thema im Forum "[Skyrim] Creation Kit" wurde erstellt von Ehemaliger Benutzer, 26. Januar 2013.

  1. Eine simple Quest erstellen Teil 2



    Begriffserläuterung:

    LK = Links Klick
    RK = Rechts Klick
    TAB = Karteireiter des CK
    Filter = Die kleine Zeile im Kopf des Object Window


    In diesem Tutorial wird die Quest aus Teil 1 um eine weitere Stage erweitert, in der der Spieler eine Nachricht per Kurier zugestellt bekommt. Als "Inspiration" für die Stage habe ich mir dieses Video Tutorial von Doughamil genommen, da es das beste zu genau diesem Thema ist.


    Einen weitere\n Nachricht \ Alias erstellen

    1. Erstellt eine weitere Nachricht - wie in Teil 1 gezeigt - gebt ihr einen Titel (z.B: Nachricht von einem Freund) und füllt sie mit Inhalt (Reist nach Erhalt dieser Nachricht nach z.B Solitude / Einsamkeit) .
    2. Öffnet die in Teil 1 erstellte Quest, wechselt in den TAB Quest Aliases, macht einen RK ins Fenster und wählt New Reference Alias. Gebt dem Alias einen Namen z.B Nachricht und selektiert bei Fill Type => Specific Reference. Lasst Select Forced References so wie es ist und setzt jeweils einen Haken bei Optional & Stores Text. Was bedeuten diese beiden Begriffe genau? Stores Text erlaubt uns den Alias Name als Replacer - mit dem Inhalt des Titeltexts der Nachricht - in den Quest Logs und Objectives zu benutzen, während Optional es uns ermöglicht, das Referenz Objekt zur Laufzeit in einer Stage unserer Wahl anzugeben.
    3. Klickt auf den Button ADD neben dem Script Fensterchen und fügt (nacheinander) die Standard Skripts: defaultsetstageonplayeraquire & defaultOnReadSetQueststage hinzu. Dass sind 2 Standardskripts, wovon das erstere auslöst sobald der Spieler ein Alias Objekt ins Inventar aufnimmt, während das letztere aktiviert wird, sobald er ein Buch / eine Schiftrolle / Notiz liest, die mit dem Alias verbunden wurde.
    4. Markiert defaultsetstageonplayeraquire und klickt auf den Button "Properties. Im Dialogfenster markiert Ihr myQST: und drückt auf Edit VALUE. Sucht im Pulldownmenü nach Eurer QuestID und markiert dann, StageToSet:. Drückt EDIT VALUE und gebt als Wert "40" ein. Dadurch wird die Quest auf 40 gesetzt, wenn der Spieler die Notiz vom Kurier "übernimmt".
    5. Jetzt ist defaultOnReadSetQueststage an der Reihe. Klickt wieder auf Properties und markiert im Dialogfenster "myQuest". Klickt auf EDIT VALUE, sucht im Pulldownmenü nach Eurer QuestID und markiert dann "myStage". EDIT VALUE=> 50 eingeben. Schliesst das Fenster mit OK. Dadurch wird die Quest auf 50 gesetzt wenn der Spieler die Notiz gelesen hat.

    Quest Stages & - Objectives anpassen

    1. Legt einen neuen Index mit der Nummer 40 bei Quest Objectives an und füllt die Spalte bei "Display Text" mit einer sinnvollen Angabe (z.B Lest die <Alias=Nachricht>)
    2. Ergänzt den Text von Index 30 um den Hinweis, dass der Spieler auf den Kurier warten soll.
    3. Wechselt zum -stages TAB. RK in die Index spalte => New. Ändert den Wert zu "50" und setzt den Haken bei Complete Quest. Tragt bei Papyrus Fragment noch
      SetObjectiveCompleted(40) (Questziel als erledigt markieren) ein. Bei Log Entry solltet ihr etwas Text rein geben, wie z.B: Ich kenne nun den endgültigen Zielort.........
    4. Markiert Stage 40 und entfernt den Haken bei Complete Quest. Ergänzt den Papyrus Fragment Eintrag dort mit der Angabe:

      SetObjectiveCompleted(30)
      SetObjectiveDisplayed(40)
    5. Markiert Stage 30 und klickt auf Propertys beim Papyrus Fragment. Im nun geöffneten Dialog klickt ihr auf ADD Property und gebt bei Name: WICourier an. Den Propertyp setzt Ihr auf "Quest". Bestätigt mit OK. Da unser Property Name mit dem einer bereits vorhanden Quest übereinstimmt sollte das CK diesen automatisch mit der WICourier Quest als Inhalt gefüllt haben.
    6. Legt eine weitere Property an, gebt als Typ Book an und als Wert nehmt Ihr eure zuvor erstellte Nachricht. Als Bezeichnung wäre etwas simples wie Nachricht angebracht
      Das Fragment selber muss jetzt ebenfalls angepasst werden. Dazu entfernt ihr die Zeile

      SetObjectiveCompleted(20) (Questziel als erledigt markieren)
      SetObjectiveDisplayed(30) (Aktuelles Questziel anzeigen)
      SetStage(40)

      und ergänzt es stattdessen mit

      Alias_Nachricht.ForceRefTo(Game.GetPlayer().PlaceAtMe(Nachricht))
      (WICourier as WICourierScript).AddAliasToContainer(Alias_Nachricht)

    7. Schliesst das Dialogfenster mit OK und speichert Euer Plugin.

    Was genau bedeuten diese zwei Zeilen?
    In der ersten setzten wir eine Bezeichnungs Referenz vom per Property eingebundenen Bookobject direkt zum Alias, damit die Engine die leere Angabe bei Select Forced References Ingame zur Laufzeit mit unserer Nachricht füllen kann. Außerdem wird gleichzeitig eine einzelne Instanz des Objects vor den Füßen des Spielers abgelegt. Man könnte diese natürlich auch woanders platzieren (z.B in einem Container) allerdings ist diese hier die einfachere Variante. In Zeile 2 kapern wir das Questscript der WICourier Quest und verwenden die darin enthalte Funktion AddAliasToContainer() um uns die gerade eben platzierte Nachricht zu schnappen und in den Container des Kuriers zu befördern. Zu beachten dabei ist, dass dadurch dass wir die Nachricht direkt vor die Füsse des Players schmeißen, dieser theoretisch in der Lage wäre sich diese zu schnappen und so den weiteren Questverlauf zum Erliegen bringen könnte.... Allerdings ist dies hier ein Tutorial und da kann man diesen "Schönheitsfehler" leicht verschmerzen, da er dazu höchstens 1 Sekunde Zeit hätte und genau den Augenblick abpassen müsste.

    Als nächstes müssen wir eine Änderung an einem Dialog der WICourier Quest vornehmen.


    Öffnet dazu die WICourier Quest und geht in den Dialogue View TAB. Markiert dort den einzigen Eintrag. Dadurch wird der gesamte Dialog Zweig des Kuriers im Fenster daneben eingeblendet. Sucht euch dort das Topic:

    Ich habe hier einen Brief für euch, ich weis nicht von wem.........

    und macht einen doppelten LK drauf.

    - In der Tabelle Conditions des nun geöffneten Fensters gibt es bereits zwei Einträge. Der Erste stellt sicher, das der Dialog nur vom Kurier verwendet werden kann und der 2. dass der Kurier diesen Text zum Spieler sagt, wenn er die Nachricht mit der ID 'WICastMagic04Letter' in seinem Inventar hat. Jetzt sorgen wir dafür, das er dasselbe macht wenn er unsere Nachricht hat.
    - Deswegen RK auf den 2. Punkt im Tabellenfenster => Copy Condition. Erneuter RK auf den 2. Punkt =>Paste Condition. Ihr habt nun zwei Bedingungen mit den selben Angaben, aber dass werden wir gleich ändern.
    - Macht einen doppelten LK auf den soeben eingefügten Eintrag und ändert den Parameter WICastMagic04Letter zu der ID Eurer oben erstellten Nachricht. Belasst alles andere wie es ist und bestätigt mit Ok.
    - Ruft nun auf die gleiche Weise den anderen Book Eintrag auf und setzt den Haken bei OR. Schliesst den Dialog mit OK.


    Sollte sich aus irgendeinem Grund die Reihenfolge der Conditions geändert haben und Euer hinzugefügter nicht der dritte Eintrag sondern der Erste oder zweite sein, müsst ihr das korrigieren! Benutzt dazu die 2 Pfeiltasten unmittelbar unter der Tabelle.

    Die Reihenfolge sollte

    Alias 'Courier'
    Book 'WICastMagic04Letter'
    Book 'Eure BookID'


    sein.


    Das war schon wieder die ganze Kunst. Testet sie am besten gleich Ingame.




    Fragen / Anregungen / Verbesserungsvorschläge?
     
  2. Werbung (Nur für Gäste)
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden