FUNKTION:
void tell_room_action(object room, object actor,
string txt, varargs mixed* args)
void tell_room_action(object room, object* actors,
string txt, varargs mixed* args)
void tell_room_action(mixed* action)
ARGUMENTE:
room: Der Raum, in den die Ausgabe erfolgen soll
actor: Die Person(en), die die Ausgabe bewirkt (oder Null)
txt: Der auszugebende Text mit Platzhaltern
args: Array mit Informationen ueber die Platzhalter
action: Mit generate_room_action(S) vorbereitete Ausgabe
BESCHREIBUNG:
Ausgabe von Saetzen in Raeumen mit den Namen beteiligter
Gegenstaende mit korrekten Besitzverhaeltnissen.
Die Funktion gibt aehnlich tell_room() einen Text an alle
Anwesenden im Raum aus. Anders als bei tell_room() bekommen
jedoch nicht alle zwangsweise denselben Text; ausserdem wird
er fuer die Ausgabe automatisch umgebrochen.
Im Text koennen Platzhalter aehnlich printf() eingebaut werden.
Es gibt %N und %n. Beide stehen fuer den Namen eines Objekts.
Fuer jeden Platzhalter muss an die Funktion ein Array uebergeben
werden: ({ Objekt, Casus, Name-Flags }).
Im Gegensatz zu %n erzeugt %N einen Namenseinschub mit Personal-
pronomen, falls der actor der Besitzer des Objekts ist.
An den actor wird keine Meldung ausgegeben, da hier meistens nicht
nur die Namen sondern der ganze Satzbau unterschiedlich sein muss.
BEISPIEL:
tell_room_action(room, fiona, "Fiona nimmt %N.",
({ ob, WEN, NAME_OWNER }));
"Fiona nimmt einen Stein." (ob ist normaler Stein)
"Fiona nimmt Deinen Stein." (ob gehoert dem Beobachter)
"Fiona nimmt Sunrises Stein." (ob gehoert nicht Beobachter)
"Fiona nimmt ihren Stein." (ob gehoert Akteur (Fiona))
tell_room_action(room, fiona, "Fiona nimmt %N und %N.",
({ ob, WEN, NAME_OWNER }), ({ ob2, WEN, NAME_OWNER }));
SIEHE AUCH:
tell_room(E), name(L), P_NAME_OWNER, generate_room_action(S)
|