@ Lord4Ever: Das ist relativ simpel. Rein theoretisch könnte man auch nur einen Script erstellen, wo all das abgefragt wird (zB. im Quest-script). Aber nur theoretisch. Sowas macht keiner, dafür erstellt man 5 (in deinem Fall nur 4) Scripte.
in dem folgenden gehe ich davon aus, dass die Stages wie folgt durchnummeriert sind:
10
20
30
40
50
Script für die Notiz:
Code:
scn [COLOR="Green"]Scriptname[/COLOR]
Begin OnActivate player
if getStageDone [COLOR="Green"]MeineQuest[/COLOR] 10 == 0
setStage [COLOR="Green"]MeineQuest[/COLOR] 10
endif
activate
End
Script für die Falltür:
Code:
scn [COLOR="Green"]Scriptname[/COLOR]
Begin OnActivate
If (getStage [COLOR="Green"]MeineQuest[/COLOR] < 40) && (player.getItemCount [COLOR="Green"]SchlüsselID[/COLOR] > 0)
setStage [COLOR="Green"]MeineQuest[/COLOR] 40
Endif
activate
End
Begin GameMode
If (GetStage [COLOR="Green"]MeineQuest[/COLOR] != 10)
return
Elseif (GetStage [COLOR="Green"]MeineQuest[/COLOR] == 10) && (player.getLOS [COLOR="Green"]MeineID[/COLOR])
setStage [COLOR="Green"]MeineQuest[/COLOR] 20
Endif
End
Script für den Schlüssel (sobald man ihn aufhebt):
Code:
scn [COLOR="Green"]Scriptname[/COLOR]
Begin OnAdd player
If GetStage [COLOR="Green"]MeineQuest[/COLOR] < 30
setStage [COLOR="Green"]MeineQuest[/COLOR] 30
Endif
End
Script für das Schmuckkästchen:
Code:
scn [COLOR="Green"]Scriptname[/COLOR]
Begin OnActivate
If (GetStage [COLOR="Green"]MeineQuest[/COLOR] < 50)
setStage [COLOR="Green"]MeineQuest[/COLOR] 50
Endif
activate
End
Anmerkung: das grünmarkierte muss ersetzt werden.
Scriptname muss jeweils unterschiedlich und eindeutig sein, simpel ausgedrückt, der Name darf nicht doppelt vorkommen.
MeineQuest ersetzt du durch die QuestID deiner Quest.
MeineID im Falltür-script ersetzt du durch die Editor-ID der Falltür. Und
SchlüsselID ersetzt du durch die SchlüsselID des Schlüssels. Das wars.
Gildur
Edit.: Raistlin, es ist einfach, aber If-anweisungen müssen schon rein. stell dir vor, der Spieler ist schon fast am Ende der Quest. Nun legt er den Schlüssel weg und hebt ihn danach wieder auf. Ohne if-Anweisung landet er zurück auf eine alte Stage und erhält den gleichen Tagebucheintrag nochmal.