FUNKTION:
varargs string parse_mess(string str, object obj)
Dabei werden folgende Ersetzungen vorgenommen:
&&WER&&, &&WESSEN&&, &&WEM&&, &&WEN&& -> obj->name(.., 2)
&!WER!&, &!WESSEN!&, &!WEM!&, &!WEN!& -> obj->QueryPronoun(..)
&%WER%&, &%WESSEN%&, &%WEM%&, &%WEN%& -> obj->QueryPossPronoun(..)
wird hier WER benutzt, wird das PossPronoun fuer ein maennliches
Object geliefert, FWER fuer ein weibliches und NWER fuer ein
Neutrum etc.
ARGUMENTE:
str ---> String, der auf auszutauschende Elemente untersucht wird.
obj ---> Es kann wahlweise ein Objekt mit angegeben werden, auf das
sich dann alle folgenden Ersetzungen beziehen. Wird kein
Objekt uebergeben, wird this_player() verwendet.
BESCHREIBUNG:
Es kommt immer wieder vor, dass fest angegebene Texte sich in
bestimmten Dingen, wie beispielsweise Name und Geschlecht, auf
einen Spieler beziehen sollen. Dafuer werden in dem Text
Platzhalter angegeben, die in dieser Funktion ersetzt werden.
Somit braucht nicht jeder Magier seine eigenen Routinen dafuer
zu schreiben und die Syntax fuer die Platzhalter bleibt
einheitlich.
Folgende Ersetzungen werden vorgenommen:
Namen:
&&WER&&, &&WESSEN&&, &&WEM&&, &&WEN&& ---> obj->name(.., 2)
Pronomen:
&!WER!&, &!WESSEN!&, &!WEM!&, &!WEN!& ---> obj->QueryPronoun(..)
Possessivpronomen:
&%WER%&, &%WESSEN%&, &%WEM%&, &%WEN%& ---> obj->QueryPossPronoun(..)
wird hier WER benutzt, wird das PossPronoun fuer ein maennliches
Object geliefert, FWER fuer ein weibliches und NWER fuer ein
Neutrum. Entsprechendes gilt fuer die anderen Faelle.
Um die Anzahl der Platzhalter gering zu halten, wurde auf
die Angaben der Plural-Faelle verzichtet. Es ist
problemlos moeglich, dies selbst zu erweitern:
"Sie nimmt &%WEN%& Hut." ----> Sie nimmt ihren Hut.
"Sie nimmt &%WER%&e Huete" --> Sie nimmt ihre Huete.
BEISPIELE:
str = "&&WER&& haelt sich krampfhaft &%WEN%& Bauch."
parse_mess(str) --> "Bongo haelt sich krampfhaft seinen Bauch."
str = "&!WER!& nimmt &%WER%&e Beine in die Hand und rennt los."
parse_mess(str) --> "Sie nimmt ihre Beine in die Hand und rennt los."
RÜCKGABEWERT:
Es wird der String mit allen moeglichen Ersetzungen
zurueckgeliefert. Konnte weder ein Bezugsobjekt noch
this_player() ermittelt werden, so wird der String ohne
Ersetzungen zurueckgegeben.
SIEHE AUCH:
P_SMELL, P_SOUND, process_string(E)
|