Oblivion:Alternativen mit mehreren Messageboxen auswählen: Unterschied zwischen den Versionen
Keris (Diskussion | Beiträge) K |
Keris (Diskussion | Beiträge) K |
||
Zeile 131: | Zeile 131: | ||
− | {{ Scriptkategorie |Messages und Messageboxen| | + | {{ Scriptkategorie |Messages und Messageboxen|Level_3_Scripts|Alternativen mit mehreren Messageboxen auswählen}} |
Version vom 14. April 2009, 21:05 Uhr
Inhaltsverzeichnis
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 auch 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
Dies 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. Für die unterschiedlichen Hirarchiestufen der Messageboxen (hier sind es max. drei) sollte man zur Klarheit auch entsprechende Werte nehmen. 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 | }}