
QueryPossPronoun()
******************


FUNKTION
========

   varargs string QueryPossPronoun(mixed what, int casus, int anzahl);


DEFINIERT IN
============

   /std/thing/language.c


ARGUMENTE
=========

   what
        Geschlecht des Objektes, das besessen wird, oder das Objekt
        selbst.

   casus
        Der Fall, in dem das Objekt besessen wird.

   anzahl
        Handelt es sich um nur ein Objekt oder um mehrere?


BESCHREIBUNG
============

   Diese Funktion gibt ein Possessivpronomen zurueck, das das
   Besitzverhaeltnis eines Objektes zu diesem Objekt anzeigt.


RUeCKGABEWERT
=============

   Das Possessivpronomen im entsprechenden Fall.


BEMERKUNGEN
===========

   what und casus beziehen sich auf das Objekt, welches besessen wird, und
   nicht auf den Besitzer!!!


BEISPIELE
=========

   Um eine korrekte Ausgabe beim Haendeklatschen zu erreichen, koennte man
   zB. folgende Zeile verwenden:

    printf("%s klatscht in %s Haende.\n",this_player()->name(WER),
         this_player()->QueryPossPronoun(FEMALE, WEN, PLURAL));

   FEMALE, da "die Hand" weiblich ist, WEN, da man im Akkusativ klatscht,
   und PLURAL, da man dazu beide Haende braucht.

   Ein beliebter Fehler ist es, als Fall WESSEN zu verwenden (in WESSEN
   Haende klatscht man? => in seine).
   Die richtige Frage waere aber: WEN klatscht man? (in die Haende)


SIEHE AUCH
==========

   QueryOwn(), QueryPronoun(), /std/thing/language.c

Last modified: Wed Jan 11 13:13:35 CET 2006 by Rumata
