Ich nehme jetzt als Beispiel das Bernard Starterpack für 2.72.
Einen Dialog startest du mit Dialogname.Start(). Dialogname ist dabei der Name, den im Feld Script Name eingegeben hast:
In diesem Beispiel wäre der korrekte Befehl also:
dBritney.Start();
"Show" sagt aus, ob die Option auswählbar ist, oder nicht. Wenn der Dialog jetzt beginnen würde, würden die beiden anderen Optionen nicht mehr angezeigt. (Und afaik wird die erste Option dann automatisch aufgeführt.)
Das Dialogskript ist das Skript, das sich öffnet wenn du bei den Dialogoptionen auf "Edit Script" klickt, also das hier:
Beim durchlesen sieht du denke ich, wie der Hase in diesem Skript läuft. option-off etc. erklären sich jetzt wahrscheinlich von alleine. Wichtig ist hier, dass die normalen Befehle wie player.Say nicht funktionieren. Dafür gibt es run-script Nummer. Diese verweist auf die Funktionen dialog_request(int param) im
Global Script:
run-script 1 ruft also dialog_request(1) auf und führt den Block if (param == 1) aus. Hier funktioniert dann wieder alles normal. Hier kannst du dann auch einen Dialog aufrufen, wie z.B. ein dGreen. (dGreen.Start()
Um eine Dialogoption in einem anderen Skript freizuschalten, z.B. im Raumskript wenn man einen Hotspot angesehen hat, nimmst du wie schon gesagt:
[ags]Dialogname.SetOptionState(NummerDerZuAktivierendenOption, eOptionOn);[/ags]
Oder in diesem konkreten Beispiel mit Britney:
[ags]dBritney.SetOptionState(2, eOptionOn);[/ags]
Aktiviert die zweite Option ("Kannst du unter dem ganzen Make-Up eigentlich atmen?").
Ich hoffe dass das diesmal verständlicher war.