Oblivion:Alternativen mit mehreren Messageboxen auswählen

Aus Skript-Wiki
Wechseln zu: Navigation, Suche

Einleitung

Mit den Messageboxen kann der Nutzer auch aus mehreren vorgegebenen Möglichkeiten etwas auswählen.


Einfache Auswahl

Anwendung

Aufgabenstellung

Der Spieler kann von einer Speisekarte unterschiedliche Gänge (Vorspeise, Hauptgericht oder Nachspeise) wählen bzw. keine Wahl treffen und je nach gewähltem Gang eine Speise wählen. Wählt er ein Hauptgericht, wird er aufgefordert, ein dazu passendes Getränk zu wählen.


Theorie

Es gilt zu beachten, dass maximal neun Alternativen angegeben werden können. GetButtonpressed liefert nur das erste Mal nach erfolgter Auswahl einen korrekten Wert. GetButtonPressed liefert den gedrückten Button der aktuellen! Messagebox. Bei mehrerern Messageboxen muss die Abarbeitung so realisiert werden, dass sich die verschiedenen Messageboxen nicht stören.


Realisierung

Umgebung

keine Anmerkungen


Script

<tesscript>scn Speisekarte

Written by keris
9.8.08

short Button short Step

begin OnActivate If IsActionRef Player

 		MessageBox "Was möchtet ihr bestellen? "  "Vorspeise" "Hauptgericht" "Nachtisch" "Nichts"

Set Step to -1 EndIf End


Begin GameMode

If Step == 0 Return ElseIf Step == -10 ;Message senden Set Step to 10 MessageBox "Welche Vorspeise darf es sein?" "Salat" "Brot"

     	Set Button to -1 

ElseIf Step == 10 ;zweite Message auswerten Set Button to GetButtonPressed If Button == 0 Player.Additem Lettuce 1 Set Step to 0 ElseIf Button == 1 Player.Additem Breadloaf 1 Set Step to 0 EndIf

ElseIf Step == -20 ;Message senden Set Step to 20 MessageBox "Welches Hauptgericht darf es sein?" "Rindfleisch" "Hammel "

ElseIf Step == 20 ;zweite Message auswerten Set Button to GetButtonPressed If Button == 0 Player.Additem Beef 1 Set Step to -200 ElseIf Button == 1 Player.Additem Mutton 1 Set Step to -200 EndIf

ElseIf Step == -200 ;Message senden MessageBox "Ihr habt noch keine Getränke gewählt." "Wein" "Bier" Set Step to 200

ElseIf Step == 200 ; Message auswerten

 		Set Button to GetButtonPressed

If Button == 0 Player.Additem DrinkWine1SurilieGood 1 Set Step to 0 ElseIf Button == 1 Player.Additem Drinkbeer 1 Set Step to 0 EndIf

ElseIf Step == -30 ;Message senden Set Step to 30 MessageBox "Welcher Nachtisch darf es sein?" "Apfel" "Kuchen" "Käse"

ElseIf Step == 30 ;zweite Message auswerten

 		Set Button to GetButtonPressed

If Button == 0 Player.Additem Apple 1 Set Step to 0 ElseIf Button == 1 Player.Additem Sweetcake 1 Set Step to 0 ElseIf Button == 2 Player.Additem CheeseWedge 1 Set Step to 0 EndIf

ElseIf Step == -1 ;Anfangsmessage auswerten

		Set Button to GetButtonPressed

If Button == 0 Set Step to -10 ElseIf Button == 1 Set Step to -20 ElseIf Button == 2 Set Step to -30 ElseIf Button == 3 Set Step to 0 EndIf EndIf

end

</tesscript>


Handhabung

Dieses Script liegt als Object-Script auf einem Buch oder einer Rolle. Für die Verwaltung der Messageboxen und der zugehörigen Button-Abarbeitung wurden Paare von Werten genommen, - für die Messageboxen, + für die Button-Abarbeitung. Die Aufrufe der Messageboxen sind geschachtelt. Für die unterschiedlichen Schachtelungen (hier sind es max. drei) sollte man zur Klarheit auch entsprechende Werte nehmen, die die Schachtelung verdeutlichen. Hier wurden Einer, Zehner und Hunderter gewählt, um die Zugehörigkeiten am Wert der Step-Variablen zu erkennen.


Weitere Information



Weitere Scripts aus dieser Kategorie

Level 1

Level 2

Level 3

   



{{#if: Messages und Messageboxen | }} {{#if: Level_3_Scripts | }}