AddId()
*******


FUNKTION
========

   void AddId(string|string* ids);


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

   /std/thing/description.c


ARGUMENTE
=========

   ids
        String oder Array von Strings mit den Bezeichnungen, mit denen
        sich sich das Objekt ansprechen lassen soll.


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

   Jedes Objekt sollte sich auf die eine oder andere Weise ansprechen
   lassen. Zu diesem Zweck kann man dem Objekt mit dieser Funktion
   Bezeichner uebergeben.


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

   keiner


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

   Jedes Objekt sollte man zumindest mit seiner Kurzbeschreibung
   ansprechen koennen! Fuer Abfragen von Questobjeken o.ae. sollte man
   zusaetzlich IDs verwenden, die Sonderzeichen wie "\n" oder "\t"
   enthalten, damit sichergestellt ist, dass der Spieler auch wirklich die
   richtigen Objekte dabeihat.


BEISPIELE
=========

   AddId( "buch" );
   AddId( "buechlein" );

   Das Objekt laesst sich jetzt als "buch" und als "buechlein" ansprechen.

   AddId( ({ "buch", "buechlein" }) );

   Diese Zeile bewirkt das gleiche wie die obigen zwei Zeilen.

   AddId( ({ "puzzle", "\nquest_puzzle" }) );

   Der Spieler kann das Objekt als "puzzle" ansprechen, questrelevante
   Objekte koennen mit der ID "\nquest_puzzle" nach ihm suchen.


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

   AddAdjective(), RemoveId(), id(), present(), /std/thing/description.c

   -----------------------------------------------------------------------

20.01.2015, Zesstra
