
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
