Oblivion:Alternativen mit Messageboxen auswählen: Unterschied zwischen den Versionen
MrMuh (Diskussion | Beiträge) (→Script) |
Keris (Diskussion | Beiträge) K |
||
(10 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 36: | Zeile 36: | ||
messagebox "Möchtet ihr einen Apfel?", "Ja", "Nein" | messagebox "Möchtet ihr einen Apfel?", "Ja", "Nein" | ||
Set RealiseSelection to 1 | Set RealiseSelection to 1 | ||
− | |||
endif | endif | ||
Zeile 53: | Zeile 52: | ||
End | End | ||
</tesscript> | </tesscript> | ||
+ | |||
==== Handhabung ==== | ==== Handhabung ==== | ||
− | + | Dieses Script kann als Object-Script oder als Quest-Script genutzt werden. | |
Zeile 85: | Zeile 85: | ||
Begin OnActivate | Begin OnActivate | ||
− | If ( RealiseSelection== 0 ) | + | If ( RealiseSelection == 0 ) |
− | MessageBox "Was möchtet Ihr zu trinken?" "Bier" "Wein" | + | MessageBox "Was möchtet Ihr zu trinken?", "Bier", "Wein", "nichts" |
Set RealiseSelection to 1 | Set RealiseSelection to 1 | ||
− | ElseIf ( RealiseSelection> 0 ) | + | ElseIf ( RealiseSelection > 0 ) |
− | + | Activate | |
− | + | EndIf | |
End | End | ||
Zeile 105: | Zeile 105: | ||
Player.AddItem DrinkBeer 1 | Player.AddItem DrinkBeer 1 | ||
Player.EquipItem DrinkBeer | Player.EquipItem DrinkBeer | ||
− | + | Set RealiseSelection to 0 | |
elseif button == 1 | elseif button == 1 | ||
message " " | message " " | ||
Zeile 111: | Zeile 111: | ||
Player.AddItem DrinkWine1SurilieGood 1 | Player.AddItem DrinkWine1SurilieGood 1 | ||
Player.EquipItem DrinkWine1SurilieGood | Player.EquipItem DrinkWine1SurilieGood | ||
− | + | Set RealiseSelection to 0 | |
elseif Button == 2 | elseif Button == 2 | ||
− | + | Set RealiseSelection to 0 | |
Return | Return | ||
endif | endif | ||
endif | endif | ||
+ | |||
End </tesscript> | End </tesscript> | ||
− | |||
==== Handhabung ==== | ==== Handhabung ==== | ||
− | + | Dieses Script liegt auf einem Object vom Typ [[ob:Activator|"Activator"]]. | |
− | Da ja nur getrunken werden soll, ist der | + | Da ja nur getrunken werden soll (also [[ob:EquipItem|EquipItem]]), ist der scripttechnische Umweg mit [[ob:AddItem|AddItem]] irrelevant, deshalb werden die automatischen Meldungen auch unterdrückt. |
− | |||
== Auswahl über ein Buch== | == Auswahl über ein Buch== | ||
Zeile 133: | Zeile 132: | ||
==== Theorie ==== | ==== Theorie ==== | ||
− | Das Buch befindet sich im Inventar, damit erscheint diese Messagebox | + | Das Buch befindet sich im Inventar, damit erscheint diese Messagebox im OnEquip-Block. Die Auswahl kann dort aber nicht abgearbeitet werden, da der Block nur bei der Aktivierung durchlaufen wird. Weiter ist während des Lesens des Buches nicht der GameMode-Block aktiv sondern der MenuMode-Block. Dort wird also die Auswahl abgearbeitet. |
Zeile 153: | Zeile 152: | ||
if Doonce == 0 | if Doonce == 0 | ||
− | MessageBox "Was möchtet Ihr zu trinken?" "Tamikas Westebenen-Wein" | + | MessageBox "Was möchtet Ihr zu trinken?", "Tamikas Westebenen-Wein", "Tamika, Jahrgang 415 " |
Set Doonce to 1 | Set Doonce to 1 | ||
endif | endif | ||
Zeile 161: | Zeile 160: | ||
Begin MenuMode | Begin MenuMode | ||
− | |||
if Doonce == 1 | if Doonce == 1 | ||
− | + | Set Button to GetButtonPressed | |
+ | If ( button == -1 ) | ||
+ | Return | ||
+ | Elseif Button == 0 | ||
+ | Set Doonce to 2 | ||
message " " | message " " | ||
message " " | message " " | ||
− | + | Player.AddItem DrinkWine2TamikaGood 1 | |
− | + | Player.EquipItem DrinkWine2TamikaGood | |
elseif Button == 1 | elseif Button == 1 | ||
+ | Set Doonce to 2 | ||
message " " | message " " | ||
message " " | message " " | ||
Zeile 176: | Zeile 179: | ||
Return | Return | ||
endif | endif | ||
− | + | ||
endif | endif | ||
End | End | ||
− | </tesscript> | + | </tesscript> |
− | |||
==== Handhabung ==== | ==== Handhabung ==== | ||
− | + | Dieses Script liegt auf einem Object vom Typ [[ob:Book|"Book"]]. | |
== Auswahl über weitere Auslöser/Blöcke == | == Auswahl über weitere Auslöser/Blöcke == | ||
− | Eine Auswahl | + | Eine Auswahl, genauer der Start der Auswahl, kann natürlich an vielen Stellen in einem Script stattfinden. Es sind unterschiedliche Auslöser, d.h. Blöcke möglich, wie z.B. ein OnTrigger-Block oder ein ScriptEffectStart-Block. Auch hier muss die Auswertung der Messagebox in einem Block stattfinden, der nicht nur einmal läuft (also meist der GameMode-Block oder der MenuMode-Block). |
Bei Zaubern kann die Messagebox-Auswertung auch in einem ScriptEffectUpdate-Block laufen. Hier muss man aber aufpassen, dass der Zaubereffect lange genug hält, um den Job zu erledigen. | Bei Zaubern kann die Messagebox-Auswertung auch in einem ScriptEffectUpdate-Block laufen. Hier muss man aber aufpassen, dass der Zaubereffect lange genug hält, um den Job zu erledigen. | ||
Zeile 202: | Zeile 204: | ||
− | {{ Scriptkategorie |Messages und Messageboxen| | + | {{ Scriptkategorie |Messages und Messageboxen|Level_2_Scripts|Alternativen mit Messageboxen auswählen}} |
Aktuelle Version vom 9. August 2009, 09:57 Uhr
Inhaltsverzeichnis
Einleitung
Mit den Messageboxen kann der Nutzer aus vorgegebenen Möglichkeiten etwas auswählen.
Einfache Auswahl
Anwendung
Aufgabenstellung
Dem Spieler wird angeboten, einen Apfel in das Inventar zu bekommen. Der Spieler kann annehmen oder ablehnen.
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. Beim zweiten mal wird -1 zurückgegeben.
Realisierung
Umgebung
keine Anmerkungen
Script
<tesscript> Scn MakeAChoice
- Written by keris
- 9.8.08
short Doonce short Button short RealiseSelection
Begin GameMode
if Doonce == 0 set Doonce to 1 ; es soll nur einmal gemacht werden! messagebox "Möchtet ihr einen Apfel?", "Ja", "Nein" Set RealiseSelection to 1 endif
if RealiseSelection Set Button to GetButtonPressed if Button == -1 return elseif Button == 0 Set RealiseSelection to 0 Player.AddItem apple 1 elseif Button == 1 Set RealiseSelection to 0 endif endif
End </tesscript>
Handhabung
Dieses Script kann als Object-Script oder als Quest-Script genutzt werden.
Auswahl über einen Aktivator
Anwendung
Aufgabenstellung
Der Player soll nach Drücken eines Schalters nach seinem Wunschgetränk gefragt werden. Entsprechend der Auswahl bekommt er etwas zu trinken.
Theorie
Diese Messagebox erscheint im Onactivate-Block, die Auswahl kann dort aber nicht abgearbeitet werden, da der Block nur bei der Aktivierung durchlaufen wird.
Realisierung
Umgebung
Es gibt einen Schalter in der Welt, auf diesem liegt das Script.
Script
<tesscript> Scn OrderDrink
- gives a drink to the player
- originated
- keris, 20.11.07
short Button short RealiseSelection
Begin OnActivate
If ( RealiseSelection == 0 ) MessageBox "Was möchtet Ihr zu trinken?", "Bier", "Wein", "nichts" Set RealiseSelection to 1 ElseIf ( RealiseSelection > 0 ) Activate EndIf
End
Begin GameMode
If ( RealiseSelection == 1 ) Set button to GetButtonPressed If ( button == -1 ) Return elseif Button == 0 message " " message " " Player.AddItem DrinkBeer 1 Player.EquipItem DrinkBeer Set RealiseSelection to 0 elseif button == 1 message " " message " " Player.AddItem DrinkWine1SurilieGood 1 Player.EquipItem DrinkWine1SurilieGood Set RealiseSelection to 0 elseif Button == 2 Set RealiseSelection to 0 Return endif endif
End </tesscript>
Handhabung
Dieses Script liegt auf einem Object vom Typ "Activator". Da ja nur getrunken werden soll (also EquipItem), ist der scripttechnische Umweg mit AddItem irrelevant, deshalb werden die automatischen Meldungen auch unterdrückt.
Auswahl über ein Buch
Anwendung
Aufgabenstellung
Der Player soll beim Lesen seines Tamika-Reiseführers ein Getränkt dieser Gegend ausprobieren. Entsprechend der Auswahl bekommt er einmal etwas zu trinken.
Theorie
Das Buch befindet sich im Inventar, damit erscheint diese Messagebox im OnEquip-Block. Die Auswahl kann dort aber nicht abgearbeitet werden, da der Block nur bei der Aktivierung durchlaufen wird. Weiter ist während des Lesens des Buches nicht der GameMode-Block aktiv sondern der MenuMode-Block. Dort wird also die Auswahl abgearbeitet.
Realisierung
Umgebung
Es gibt ein Buch im Inventar des Players, auf diesem liegt das Script.
Script
<tesscript> Scn TestingWine
- gives some wine to the player
- originated
- keris, 23.08.08
short Button short Doonce
Begin OnEquip
if Doonce == 0 MessageBox "Was möchtet Ihr zu trinken?", "Tamikas Westebenen-Wein", "Tamika, Jahrgang 415 " Set Doonce to 1 endif
End
Begin MenuMode
if Doonce == 1 Set Button to GetButtonPressed If ( button == -1 ) Return Elseif Button == 0 Set Doonce to 2 message " " message " " Player.AddItem DrinkWine2TamikaGood 1 Player.EquipItem DrinkWine2TamikaGood elseif Button == 1 Set Doonce to 2 message " " message " " Player.AddItem DrinkWine4TamikaBetter 1 Player.EquipItem DrinkWine4TamikaBetter else Return endif
endif
End </tesscript>
Handhabung
Dieses Script liegt auf einem Object vom Typ "Book".
Auswahl über weitere Auslöser/Blöcke
Eine Auswahl, genauer der Start der Auswahl, kann natürlich an vielen Stellen in einem Script stattfinden. Es sind unterschiedliche Auslöser, d.h. Blöcke möglich, wie z.B. ein OnTrigger-Block oder ein ScriptEffectStart-Block. Auch hier muss die Auswertung der Messagebox in einem Block stattfinden, der nicht nur einmal läuft (also meist der GameMode-Block oder der MenuMode-Block). Bei Zaubern kann die Messagebox-Auswertung auch in einem ScriptEffectUpdate-Block laufen. Hier muss man aber aufpassen, dass der Zaubereffect lange genug hält, um den Job zu erledigen.
Weitere Information
Weitere Scripts aus dieser Kategorie
Level 1
Level 3
{{#if: Messages und Messageboxen | }}
{{#if: Level_2_Scripts | }}