Construction Set Script-Problem ( GetButtonPressed + MessageBox )

johannes89

Vertrauter
Ich hab als Upgrade für mein Häusle eine Schriftrolle mit einem Enchanting, dass als Effekt ein Skript beinhaltet. Dieses Skript setzt die Globale Variable "BaalStatueActivateVar" auf den Wert "1". Am Sockel der Statue hängt ein Skript, dass in jedem Frame des Spiels ausgeführt wird ( - ich hab das so gemacht, weil ich dachte, es liegt daran, dass wenn ich das direkt mit dem Skript-Effekt mach, das Skript nicht oft genug ausgeführt wird )... HowEver, das Skript am Sockel der Statue sieht so aus:

Code:
scn BaalStatueActivateScript2

short button
short do_once

Begin GameMode

if ( BaalStatueActivateVar == 1 )

	if ( do_once == 0 )
		messagebox "Welcher Gottheit möchtet ihr ein Denkmal setzen?", "Nocturnal (Diebe)" "Mephala (Nekromanten)" "Azura (Magier)" "Shegorath (Abenteurer)" "Boethia (Krieger)"
		set do_once to 1
		set button to GetButtonPressed
	endif
	
		if ( button > -1 )
			if ( button == 0 )
				BaalStatueNocturnalRef.enable
				set BaalStatueActivateVar to 2
			elseif ( button == 1 )
		  		BaalStatueMephalaRef.enable
				set BaalStatueActivateVar to 2
			elseif ( button == 2 )
		  		BaalStatueAzuraRef.enable
				set BaalStatueActivateVar to 2
			elseif ( button == 3 )
				BaalStatueSheogorathRef.enable
				set BaalStatueActivateVar to 2
			elseif ( button == 4 )
				BaalStatueBoethiaRef.enable
				set BaalStatueActivateVar to 2
			endif
		endif

endif

End

Im Spiel wird, sobald ich die Schriftrolle benutze die Messagebox eingeblendet und ich kann auswählen, aber irgendwas muss falsch sein, denn weder taucht nach der Wahl eine der Statuen auf, noch ist danach die Variable "BaalStatueActivateVar" auf dem Wert "2".

Weiss jemand wo der Fehler ist?
 
Ich bin mir nicht sicher aber ich glaube der "Fehler" liegt hier
Code:
if ( do_once == 0 )
		messagebox "Welcher Gottheit möchtet ihr ein Denkmal setzen?", "Nocturnal (Diebe)" "Mephala (Nekromanten)" "Azura (Magier)" "Shegorath (Abenteurer)" "Boethia (Krieger)"
		set do_once to 1
		set button to GetButtonPressed
endif

Ich vermute das das Script weiterläuft und nicht auf einen "Mausklick" wartet. Also bleibt die Variable button immer auf -1, weil so schnell ja keiner auf den Button klicken kann.


Ich würde es mal so Probieren.

Code:
set button to GetButtonPressed
if ( button > -1 )
    if ( button == 0 )
	BaalStatueNocturnalRef.enable
    ......

Möp Zerlix
 
Zuletzt bearbeitet:
  • Like
Reaktionen: johannes89
Daran lags tatsächlich, jetzt klappt das ganze tadellos. Wenn man ewig lang wieder hier und da etwas rumstellt und ausprobiert sieht man sowas nicht mehr... aber trotzdem gut zu wissen, dass Scripte bei Messageboxen weiterlaufen... Eigentlich bin ich ja dumm - ich hatte es von anfang an so gecodet... - naja egal, wie auch immer. Dankeschön :)