Lpc Manpages

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, das
   besessen wird, nicht auf den Besitzer! Dieser ist bereits durch x
   bestimmt.


RUECKGABEWERT
=============

   durchersetzter String


BEISPIELE
=========

   1)
     string ret = replace_personal("@WER1",({find_player("torin")}));
     ret -> "Torin"

   2)
     string ret = replace_personal("@WEMQP1",({find_player("torin")}));
     ret -> "ihm"

   3) // unbestimmter und bestimmter Artikel:
     string ret = replace_personal("@WER1 zueckt @WENU2 und verhaut @WEN3.",
                      ({find_player("torin"),
                       find_object("/obj/schaufel"),
                       find_object("/obj/topliste") }))

     ret -> "Torin zueckt eine Schaufel und verhaut die Topliste."

   4) // Beim Possessivpronomen beziehen sich WEN, F und P (Akkusativ,
      // Femininum, Plural) auf die Taschen, nicht auf Bella:

     string ret = replace_personal("@WER1 steckt @WESSEN2 Turnschuhe in "
                                   "@WENQPPFP1 Taschen.",
                                   ({find_player("bella"),
                                     find_player("torin")}));

     ret -> "Bella steckt Torins Turnschuhe in ihre Taschen."

   5) // Ein Beispiel mit laengerem >>*<<obs:

      string ret = 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("it"),
                           find_player("torin"),
                           find_object("/obj/schaufel"),
                           "Birne",
                           find_object("/obj/wirt"),
                           find_netdead("bella")}),1);

      ret -> "It zieht seine neuen Turnschuhe an. Torin ist so beeindruckt,
              dass er ihm eine Schaufel auf die Birne haut und die Schuhe in
              seine Tasche verschwinden laesst. Ein Wirt schaut zu und
              kichert irre. Wenn das Bella gesehen haette!"


SIEHE AUCH:
   MakeString, sprintf

----------------------------------------------------------------------------
01.12.17, Torin              Urheber: Gloinson, Vanion und Zesstra@mg.mud.de