Fragen zu(m) Quest(objekt)

azraelb

Abenteurer
Hi,

ich habe momentan ein paar Probleme mit einer Quest. Hier mal ein grober Umriss des Ablaufs:

Stage 0: Player hat den Trank noch nicht getrunken
Stage 10: Player hat den Trank getrunken, aber xy == false
Stage 20: Player hat den Trank (erneut) getrunken und xy == true (<= Beginn der Quest)
Stage 30: ...
...


Problem #1:
Ich bin z.B. in Stage 30 und will auf Grund eines Ereignisses zurück zu Stage 10!
-> MyQuest.SetCurrentStageID(10) liefert mir immer false zurück (Stage wird also niocht auf 10 zurück gesetzt)
-> MyQuest.Reset() funktioniert, setzt die Stage aber auf 0
=> Muss ich erst die Quest mit Reset() zurück setzen, wenn ich eine oder mehrere Stages zurück will oder geht das auch irgendwie anders?

Problem #2:
Meine Quest läuft, ich kann die Stages hochsetzen usw., allerdings existiert kein Eintrag im Questlog und es kommt auch keine Schrift oder Sound beim Erreichen einer neuen Stage
=> Wie mache ich das?

Problem #3:
Sobald die Quest aktiv ist (oder von mir aus auch erst ab Stage 10), soll das Questscript in regelmäßigen Zeitabständen ein paar Variablen überprüfen und ggf. auf eine oder mehr Änderungen (z.B. xy wird "true") reagieren.
-> Das wollte ich mit Event OnUpdateGameTime() realisieren (QuestScript müsste das Event ja von FormScript geerbt haben). Allerdings funktioniert das bei mir gerade nicht. Folgende Gründe sehe ich hier:
- Das QuestScript läuft nicht automatisch wenn die Quest aktiv ist
oder - Eine aktive Quest erzeugt nicht automatisch OnUpdateGameTime()-Events, sondern man muss sich mit den entsprechenden Funktionen erst für ein solches Event registrieren
oder - Die Events treten so selten auf, dass ich das beim Testen nicht mitbekommen habe

=> Wenn eine Registrierung für das Objekt zwingend erforderlich ist, wo mache ich das dann? im Script vom Trank, der die Quest startet oder im Questscript selbst, welches auch auf das Event reagiert? Hat vielleicht jemand ein Beispiel für mich?
=> Kann man die Häufigkeit der Events auch ohne Registrierung erhöhen/verringern?
=> Wenn das Questscript nicht automatisch bei Start der Quest ausgeführt wird oder das Script nicht bis zum Beenden der Quest läuft, wo kann ich das einstellen?

Danke für Eure Tipps,
Gruß AZ

PS: Die Quest wird (zumindest vorerst) nie beendet, sondern maximal wieder zurück gesetzt. Desweiteren nutzt die Quest bis Stage 30 keine Actor, dementsprechend kann ich die Quest auch nicht über Actor oder Dialoge steuern