PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem bei MessageBox in QuestScript



Atoom
11.01.2009, 02:51
Tach (oder besser Nacht^^),
ich hab ein Problem bei einem Script, welches ein Paar Messageboxes aufruft, aus denen man auswählen kann. Und zwar ist das Script in einem StartGameEnableden Quest, da es etwas zu initialisieren hat, blöderweise aber nich die erste Messagebox, was es aber tut und so den ganzen Skriptablauf durchernanderbringt. Normalerweise werden die Boxen durch einen Spell aufgerufen, welcher einfach den Quest wieder startet. Ich hab im Moment echt keine Ahnung wieso des des tut, Hat wer ne Idee?

scn aaGrowlfQSCR

short init
short stage
short button
float fQuestDelayTime

begin gamemode
if init == 0
set init to 1
set fQuestDelayTime to 0.1
player.addspell aaGrowlfSpell
stopquest aaGrowlfQ
endif

if stage == 0
set stage to 1
messagebox "Was wollt ihr?" "Rüstung" "Kleidung" "Nichts"
endif

if stage == 1
set button to getbuttonpressed
if button >= 0
if button == 0
set stage to 2
elseif button == 1
aaGrowlfClothesREF.activate player
set stage to 4
elseif button == 2
set stage to 4
endif
set button to -1
endif
endif

if stage == 2
set stage to 3
messagebox "Was für Rüstung wollt ihr?" "Leichte" "Schwere" "Zurück" "Keine"
endif

if stage == 3
set button to getbuttonpressed
if button >= 0
if button == 0
aaGrowlfLightArmorREF.activate player
set stage to 4
elseif button == 1
aaGrowlfHeavyArmorREF.activate player
set stage to 4
elseif button == 2
set stage to 0
elseif button == 3
set stage to 4
endif
set button to -1
endif
endif

if stage == 4
set stage to 0
stopquest aaGrowlfQ
endif
end

Low Post
11.01.2009, 03:21
Könnte sein, dass der nach dem StopQuest trotzdem noch den Rest durchläuft. Pack noch ein Return dahinter, dann sollte da keine MessageBox mehr kommen.


Ansonsten sieht das Script soweit in Ordnung aus.

Atoom
11.01.2009, 18:07
ja, hat funktioniert, hätt ich aber auch selbst rausgefunden, wenn ich mich dazu herabgelassen hätte das CSwiki zu stopquest zu lesen:

The quest script, if any, will stop running. *NOTE: This does not act as a Return function when called from a quests's own script. The script will continue running until the end of the last block.*
Aber man lernt ja durch Trial and Error ;)