Construction Set Result Scripts in Quest Topics

Dieses Thema im Forum "[Obl] PlugIns und Mods" wurde erstellt von Andy1967, 23. Februar 2014.

  1. Andy1967

    Andy1967 Reisender

    Die Frage kann hier sicher jemand leicht beantworten:

    Wenn ich ein Script habe das im Hintergrund eine Variable definiert, kann ich die Variable dann im Result Script eines Topics verändern, in der Art von
    Code:
    set XYZ to XYZ+1
    Es geht darum eine bestimmte Anzahl von Gesprächen durchlaufen zu müssen, bevor etwas neues passiert, z.B. eine neue Queststage ausgelöst wird.

    Schon mal herzlichen Dank im Voraus für eure Antworten. :)
     
  2. Werbung (Nur für Gäste)
  3. Beolo

    Beolo Abenteurer

    Um auf eine Variable eines Objekt-Skripts zugreifen zu können, muss das Skript auf einer persistenten Referenz liegen. Angenommen die Objektreferenz heißt MeinObjektRef und die Variable in dessen Skript Anzahl, dann kannst Du das von anderen Skripten, oder in den Results mit set MeinObjektRef.Anzahl to Wert ändern.
    Zum Hochzählen der Variable dann eben set MeinObjektRef.Anzahl to MeinObjektRef.Anzahl + 1

    Soll es kein Objektskript sein, kann auch ein Questskript benutzt werden. Dann eben die Quest abgeben, set MeineQuest.Anzahl to Wert

    Um in Bedingungen eines Gesprächs, diese Variable wieder abzufragen, gibt es die Funktionen GetScriptVariable, bzw. GetQuestVariable
     
    Andy1967 gefällt das.
  4. Andy1967

    Andy1967 Reisender

    Ich dachte dran die Variable in ein Questscript zu packen in dem nichts anderes gemacht wird als eine Short "Anzahl" zu definieren. Das ganze dann an eine Queste "Anzahlcounter" die von Spielbeginn an läuft und als einzigen Eintrag den Verweis auf besagtes Questscript hat.

    Die ganzen Gesprächsoptionen stecken dann in dem eigentlichen Quest das man spielt. Da gibt es jede Menge Gesprächsoptionen, da der NSC will, daß man alle möglichen Gegenstände beschafft. Dies kann man in beliebiger Riehenfolge tun, daher dachte ich es wäre sinnvoll am Ende der jeweiligen Gesprächsoption einen Counter hochzusetzen. Da bekannt ist wieviele Objekte gesucht werden müssen ist klar bei welchem Zählerstand ein "Ich habe alles gefunden" Ereignis ausgelöst werden muß. Daher noch mal zu meinem Verständnis: Kann ich bei einem Questscript auch anstelle des
    auch ein
    Code:
    set Anzahlcounter.Anzahl to Anzahl + 1
    verwenden, oder muss da wirklich eine feste Wertangabe rein?

    EDIT: Warte, ich glaub ich habs jetzt, nachdem mir wieder einfiel, daß ja auch in der Vanillaqueste mit dem Sammler der Ayleidenstatuen mitgezählt werden muß. Das wird jetzt erst mal gründlich analysiert, aber ich denke da dran kann ich mich langhangeln. :)
     
    Zuletzt bearbeitet: 23. Februar 2014
  5. Beolo

    Beolo Abenteurer

    Nein, natürlich muss da kein fester Wert rein. Ich habe es ja oben so geschrieben. Ist ja wurscht, ob es sich um eine Quest-, oder Skriptvariable handelt

    Code:
    Zum Hochzählen der Variable dann eben set MeinObjektRef.Anzahl to MeinObjektRef.Anzahl + 1
    In einem Questskript eben:

    set MeineQuest.Anzahl to MeineQuest.Anzahl + 1



    Das würde sich niemals compilieren lassen. Die Syntax ist ObjektRef.Variable, oder QuestID.Variable. Nicht verwirren lassen, der Name des Skripts ist irrelevant. Man greift auf das Qbjekt, bzw. die Quest zu, auf dem es liegt.
     
  6. 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