Construction Set Mein fehlerhafter script

Hattu

Bürger
also folgendes:

ich habe einen script erstellt: er liegt auf einem brunnen, bei aktivierung kommt die message, was man machen will. trinken, schöpfen, nichts.
bei trinken startet der script trinken (den ich noch nicht geschrieben habe, also passiert nix) bei schöpfen dasselbe. nur bei nichts soll eigentlich die nachricht kommen das man nichts macht, kommt aber nichts. kann sich jemand den script bitte mal ansehen und mir sagen was ich alles falsch habe?
wäre sehr nett. hier ist er:

begin brunnen

short waterbut

if ( onActivate == 1 )
messagebox "Du stehst vor dem Brunnen. Was willst du tun?" "Trinken" "Schöpfen" "Nichts"
set waterbut to GetButtonPressed
if ( waterbut == -1 )
return
endif
elseif ( waterbut == 0 )
startscript trinken
endif
elseif ( waterbut == 1 )
startscript wasser
endif
elseif ( waterbut == 2 )
messagebox "Du gehst wieder.............."
endif

endif

end

danke im vorraus
 
Du hast die IF-Struktur falsch ;)

Das geht so:

If ( Irgendwas )
Aktion1

Elseif ( Was anderes )
Aktion2

Elseif ( Wieder was anderes )
Aktion3

....
....
....

Endif

Also entweder Elseif, wenn noch was anderes geprüft werden soll oder Endif, wenn alles geprüft wurde.

EDIT: Probier mal so:

begin brunnen

short waterbut

if ( OnActivate == 1 ) ; Bei Aktivierung Menue anzeigen
messagebox "Du stehst vor dem Brunnen. Was willst du tun?" "Trinken" "Schöpfen" "Nichts"
endif

set waterbut to GetButtonPressed ; Laufend die Variable aktualisieren

if ( waterbut == -1 ) ; Ab hier die Variable pruefen
return
elseif ( waterbut == 0 )
startscript trinken
elseif ( waterbut == 1 )
startscript wasser
elseif ( waterbut == 2 )
messagebox "Du gehst wieder.............."
endif

end

EDIT: Fehler korrigiert, den ReneMiner entdeckt hat
 
Zuletzt bearbeitet:
Auch falsch Kallreven, der Fehler liegt darin das waterbut nur einmal im gleichen Moment mit OnActivate gesetzt wird- das geht aber nicht- der Spieler kann nicht zugleich denn Brunnen anklicken und die Frage beantworten, etwa so müsste's gehen:

begin brunnen

short waterbut
short angeklickt


if ( angeklickt == 0 )
set angeklickt to OnActivate
return

elseif ( angeklickt == 1 )

messagebox "Du stehst vor dem Brunnen. Was willst du tun?" "Trinken" "Schöpfen" "Nichts"
set angeklickt to 2
return

endif


set waterbut to GetButtonPressed

if ( waterbut >= 0 )
set angeklickt to 0

if ( waterbut == 0 )
startscript trinken

elseif ( waterbut == 1 )
startscript wasser

else
messagebox "Du gehst wieder.............."
endif

endif

end
 
Zuletzt bearbeitet:
Auch falsch Kallreven, der Fehler liegt darin das waterbut nur einmal im gleichen Moment mit OnActivate gesetzt wird- das geht aber nicht- der Spieler kann nicht zugleich denn Brunnen anklicken und die Frage beantworten, etwa so müsste's gehen:
Jo, ich hatte nicht die Zeit, alles durchzuchecken. ;)
Hab erstmal nur den Syntaxfehler mit dem elseif endif behoben.
Ist klar, die Variable muss natürlich auch laufend aktualisiert werden.
 
Zuletzt bearbeitet:
So wie's da steht sollte es eigentlich jedes Mal funktionuckeln. "angeklickt" wird ja wieder gelöscht sobald der Spieler eine Wahl getroffen hat.
Wenn das Script allerdings noch andere Funktionen ausführen soll - z.B. den Eimer am Brunnen hoch und runterkurbeln oder sowas dann wäre die oben von mir vorgeschlagene Struktur nicht brauchbar denn diese ist eine reine rechenzeitsparende "Nur-Ausführen-wenn-aktiviert".