blob: 3804be303d88b86b7a30a53eb16641459526a84e [file] [log] [blame]
replace_personal()
******************
FUNKTION
========
varargs string replace_personal(string str, mixed *obs [, int caps]);
DEFINIERT IN
============
/secure/simul_efun.c
ARGUMENTE
=========
str - zu bearbeitender String
obs - Liste von Objekt1, Objekt2, ..., Objekt9
(Objekte oder Strings)
caps - 1 fuer Grossschreibung des Ersetzten nach Satzenden (.,?,!,")
0 sonst
BESCHREIBUNG
============
Ersetzt in Strings
@WERx, @WESSENx, @WEMx, @WENx durch
Objectx->name(<casus>, 1);
@WERUx, @WESSENUx, @WEMUx, @WENUx durch
Objectx->name(<casus>);
@WERQPx, @WESSENQPx, @WEMQPx, @WENQPx durch
Objectx->QueryPronoun(<casus>);
@WERQAx, @WESSENQAx, @WEMQAx, @WENQAx durch
Objectx->QueryArticle(<casus>, 1, 1);
@WERQPPGNx, @WESSENQPPGNx, @WEMQPPGNx, @WENQPPGNx durch
Objectx->QueryPossPronoun(<gender>, <casus>, <number>);
oder den entsprechenden String bei "Objektx".
BEMERKUNGEN
===========
x steht fuer die Position des Objekts/Strings in *obs, beginnend bei 1.
Besonderheiten beim Possessivpronomen (@WERQPPGNx):
G muss durch das Geschlecht (M, F oder N) und N durch den Numerus (S
oder P) ersetzt werden.
Alle Angaben, auch der CASUS, beziehen sich dabei auf das Objekt, welches
besessen wird, nicht auf den Besitzer! Dieser ist bereits durch x
bestimmt.
RUeCKGABEWERT
=============
durchersetzter String
Beispiele
replace_personal("@WER1", ({find_player("gloinson")})) ==
"Gloinson"
replace_personal("@WEMQP1", ({find_player("gloinson")})) == "ihm"
// unbestimmter und bestimmter Artikel: replace_personal("@WER1
zueckt @WENU2 und verhaut @WEN3.",
({find_player("gloinson"),
find_object("/obj/mpa"), find_object("/obj/wanderer")}))
== "Gloinson zueckt eine Zeitung und verhaut den Wanderer."
// Beim Possessivpronomen beziehen sich WEN, F und P (Akkusativ, //
Femininum, Plural) auf die Taschen, nicht auf Kessa:
replace_personal("@WER1 steckt @WESSEN2 Turnschuhe in @WENQPPFP1 "
"Taschen.", ({find_player("kessa"),
find_player("gloinson")}))
== "Kessa steckt Gloinsons Turnschuhe in ihre Taschen."
// Ein Beispiel mit laengerem >>*<<obs: replace_personal("@WER1
zieht @WENQPPMP1 neuen Turnschuhe an. @WER2 ist "
"so beeindruckt, dass @WERQP2 @WEMQP1 @WENU3 auf die " "@WEN4
haut und die Schuhe in @WEMQPPFS2 Tasche " "verschwinden laesst.
@WERU5 schaut zu und kichert " "irre. Wenn das @WER6 gesehen
haette!", ({find_player("gloinson"),
find_player("kessa"), find_object("/obj/mpa"), "Birne",
find_object("/obj/wanderer"), find_netdead("jof")}),1)
== "Gloinson zieht seine neuen Turnschuhe an. Kessa ist so
beeindruckt, "
"dass sie ihm eine Zeitung auf die Birne haut und die Schuhe in
ihrer " "Tasche verschwinden laesst. Ein Wanderer schaut zu und
kichert " "irre. Wenn das Jof gesehen haette!"
SIEHE AUCH
==========
AddCmd(L)
5. September 2015, Arathorn