Oblivion:Quest Scripts

Aus Skript-Wiki
Version vom 20. September 2008, 14:22 Uhr von Lars (Diskussion | Beiträge) (Übersetzter Text eingefügt)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Einleitung

Quest Scripts können erstellt werden, indem im Script Window als Script Type 'Quest' ausgewählt wird. Scripts müssen als Quest Scripts bezeichnet werden um an Quests angefügt werden zu können. Quest Scripts sind Non-Reference Scripts und deswegen in ihrer Syntax etwas beschränkt.


Grundlegende Fakten

  • Quest Scripts werden nur ausgeführt, wenn die Quest läuft(das lässt sich im Spiel mit sqv QUEST_NAME herausfinden). Quests können mit den Befehlen StartQuest und StopQuest gestartet und angehalten werden. Beachte dabei, dass dies unabhängig davon ist, ob eine Quest grade läuft oder nicht. Eine Quest fertigzustellen bedeutet, dass sie im Tagebuch des Spielers in den 'Abgeschlossene Aufgaben'-Reiter verschoben wird - aber sie wird immer noch ausgeführt bis sie mit 'StopQuest' beendet wird.
  • Quests werden automatisch aktiviert, wenn der Spieler einen entsprechenden Tagebucheintrag erhält. Wenn also SetStage QUESTNAME 10 verwendet wird, angenommen es enthält einen Tagebuch Text, wird dadurch automatisch die Quest gestartet.
  • Normalerweise sollte eine Quest angehalten werden, wenn sie abgeschlossen ist, damit das Quest Script nicht weiter ausgeführt wird. Wenn es einen Grund gibt das Script weiterhin laufen zu lassen(aufgrund von Dialogen oder Scripts nach der Quest), solltest du darüber nachdenke eine zweite Quest zu erstellen(z.B. MS38 und MS38FIN).
  • Quest Variablen können auch dann eingesehen und verändert werden, wenn die Quest nicht ausgeführt wird. Wenn eine Quest angehalten wird, wird zwar auch das Script gestoppt, aber es bleibt ebenso wie seine Variablen erhalten.


Einstellen wie oft ein Quest Script ausgeführt wird

  • Setze die Variable float fQuestDelayTime in deinem Quest Script.
  • Setze fQuestDelayTime auf wie oft dein Script ausgeführt werden soll(in Sekunden). Wenn du es auf etwas sehr Kleines setzt(.01), wird es dann tatsächlich nur jeden Frame ausgeführt. Wenn du es auf 0 setzt, wird das Quest Script zur gewöhnlichen Einstellung(alle 5 Sekunden) zurückkehren. Diese Funktion ist mit Vorsicht zu benutzen - für gewöhnlich sollte fQuestDelayTime nur unter bestimmten Umständen auf etwas kleineres als 5 gesetzt werden.
  • fQuestDelayTime kann auch von anderen Scripts aus gesetzt werden, indem du dein Script mit angibst, z.B. set MyQuest.fQuestDelayTime to 0.01.
  • Quest Scripts sind die einzigen Scripts, die MenuMode-Blöcke ausführen, während der Spieler schläft oder die Schnellreise-Funktion verwendet.
  • Da Quest Scripts immer basierend auf bestimmten Zeit-Abständen ausgeführt werden, müssen sie nicht zwangsläufig frame-synchron sein - auch wenn fQuestDelayTime auf einen sehr kleinen Wert gesetzt wird. Für manche Effekte(z.B. welche die SetPos verwenden) kann dies ungewünschte Ergebnisse haben. In dem Fall können Objekt und Magie Scripts die bessere Wahl sein.