Mir sind eigenartige Funktionen und Konstrukte im Mansion-Starterpack aufgefallen, mit denen ich nichts anfangen kann
Du meinst sicherlich so etwas:
if ( !cFred.SayIfPlayer("Nein, im Moment muss ich das nicht.") )
{
player.SayIfIsEdison("Ich weiss nicht wie es funktioniert.");
player.SayIfNotEdison("Es ist nicht eingeschaltet.");
}
Das ist ganz einfach zu verstehen.
Nehmen wir uns zuerst die inneren Funktionen vor.
Die erste Zeile,
player.SayIfIsEdison("Ich weiss nicht wie es funktioniert.");
sagen nur die Edisons (Ed, Fred, Edna)
die zweite Zeile,
player.SayIfNotEdison("Es ist nicht eingeschaltet.");
sagen alle anderen (Nicht Edisons)
Soweit klar?
Nun aber zur ersten Zeile.
if ( !cFred.SayIfPlayer("Nein, im Moment muss ich das nicht.") )
Diesen Satz sagt Fred, nur wenn er der Spieler ist. Ist das nicht der Fall, sagt Fred nichts, die Funktion liefert false zurück und wird durch das !-Zeichen verneint, also ist die Bedinung erfüllt und die anderen Sätze werden ausgeführt.
Im Fall, das Fred der Spieler ist, sagt er seinen Satz, die Funktion liefert true zurück, wird verneint und die inneren Befehle werden nicht ausgeführt.
Jetzt dürfte dich verwirren, dass den inneren Satz die Edisons sagen, und Fred somit auch sagen müsste, oder?
Da aber die Bedinung nicht erfüllt ist, wenn Fred der Spieler ist, wird dieser Befehl übersprungen.