PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Questdialog startet nicht



Papi62
26.12.2009, 04:57
Palim, da isser wieder :D

Ich blick da irgenwie nicht durch. Ich möchte gerne einen Dialog startet wenn der Player einen Activator anklickt. Also ohne NPC (wenn das denn geht).

Da steht also ein Funkgerät das ich aktiviere (ist ein Activator). Darauf liegt das folgende Skript:

scn MatrixEnclaveFunkEinschaltScript

float Timer
short doOnce


Begin OnActivate Player

if doOnce == 0
StartQuest MatrixEnklaveFunkDialog
;- - - - - - Sicht auf Fallschirm zentrieren
Player.SetAngle Z 91
Player.SetAngle X -35
MatrixCrateParachute01REF.Enable
set doOnce to 1
endif

End


Begin GameMode

if doOnce == 1
if Timer < 26.5
set Timer to Timer + GetSecondsPassed
else
set Timer to 0
set doOnce to 2
MatrixOrbitalStrikeControlTriggerREF.enable
playSound MatrixGrenadeChute 1
MatrixCrateParachute01REF.Disable
MatrixSpiderCrate01REF.Enable
MatrixParachute01REF.Enable
endif
endif

if doOnce == 2
if Timer < .5
set Timer to Timer + GetSecondsPassed
else
set Timer to 0
set doOnce to 3
MatrixCrateParachute01REF.Disable
endif
endif

End


Es funktioniert alles wunderbar bis auf "StartQuest ...".

Bei "Quest Data" habe ich "Start Gem Enabled" aktiviert und die "Quest Conditions" = GetIsID - den Activator - als Target (T).
Dann in "Topics" die Dialoge erstellt, diese auch miteinander verknüpft (durch Choices und Link From) und überall Conditions wie oben.

Was braucht's denn noch bzw. wo ist mein Denkfehler ?

Stygs
26.12.2009, 12:38
Also wenn du "Start Game Enabled" hast, brauchst du imho kein StartQuest, das kommt aufs selbe raus.
Vielleicht probier mal SetStage um damit dann damit nen bestimmten Effekt beim Quest zu starten.

caesarrulez
26.12.2009, 13:00
braucht man da nicht auch das setstage? weil erst dann weiß ja der Quest wo er ist, also musst du die stage ansprechen, auf die der Text liegt.

z.b. stage 10 ist der anfang, und die message 'Hallo' liegt dahinter, dann musst du in dem Script sagen meinquest.setstage 10 (oder so ähnlich)

Papi62
26.12.2009, 19:40
Danke erstmal für die Tips, leider will es immer noch nicht.

Ich habe geändert:

"Start Game Enabled" ausgeschaltet.
Quest Stages hinzugefügt:
0 (leer)
10 mit Result Script
Player.SetAngle Z 91
Player.SetAngle X -35
MatrixCrateParachute01REF.Enable
20 mit Log Entry "Bring Dich beim Container in Sicherheit" und Result Script
SetObjectiveDisplayed MatrixEnklaveFunkDialog 20 1
SetObjectiveCompleted MatrixEnklaveFunkDialog 10 1

Quest Objectives hinzugefügt:
20 mit Display Text "Du bist in sicherem Abstand, geniesse das Feuerwerk.", Target Ref "(Trigger der die Raketen auslöst)"
Bei Topic "Hello01" die Condition "GetStage" - "Meine Quest" - "Value == 10"
Bei allen Topics das Conditions Target (GetIsID) aus von "Target" auf "Subject", wel ich bei anderen Quests gesehen haben das die auch so bei Items drin sind.
Skript des Activators
scn MatrixEnclaveFunkEinschaltScript

float Timer
short doOnce


Begin OnActivate Player

if doOnce == 0
SetStage MatrixEnklaveFunkDialog 10
set doOnce to 1
endif

End


Begin GameMode

if doOnce == 1
if Timer < 26.5
set Timer to Timer + GetSecondsPassed
else
set Timer to 0
set doOnce to 2
MatrixOrbitalStrikeControlTriggerREF.enable
playSound MatrixGrenadeChute 1
MatrixCrateParachute01REF.Disable
MatrixSpiderCrate01REF.Enable
MatrixParachute01REF.Enable
endif
endif

if doOnce == 2
if Timer < .5
set Timer to Timer + GetSecondsPassed
else
set Timer to 0
set doOnce to 3
MatrixCrateParachute01REF.Disable
endif
endif

End



Was nun seltsam ist: Die Quest scheint zu starten weil das Result Script aus Stage 10 verarbeitet wird (Sicht wird geändert und Falschirm gestartet).
Aber der Dialog (Topics) und die Quest Objectives kommen nicht.

Papi62
27.12.2009, 21:45
Weiss denn keiner Rat? HÜLFEEEE!!