SYNOPSIS object present(string str) object present(string str, int n) object present(string str, object env) object present(string str, int n, object env) object present(object ob) object present(object ob, object env) BESCHREIBUNG Wenn ein Objekt mit der Id sich im Inventar oder in der Umgebung von this_object() befindet, wird es zurueck geliefert. Ist das Argument gegeben, wird das n-te Objekt mit Namen zurueck geliefert. Das heisst, der Driver fuehrt fuer alle Objekte im Inventar und in der Umgebung von this_object() die Funktion id(str) aus, bis ein Treffer erzielt wird (wenn ueberhaupt). Ist nicht gegeben, aber hat die Form " " , wird ebenfalls das n-te Objekt mit Namen zurueckgeliefert. kann auch ein Objekt (anstatt einer Id) sein, was den Test schneller und einfacher macht. Das Argument ist optional. gibt das Objekt an, in welchem nach gesucht wird. Nur das Inventory von wird durchsucht, nicht jedoch dessen Umgebung. ANMERKUNGEN Wenn die efun sowohl in this_object() als auch dessen Umgebung sucht, werden, soweit es die Numerierung betrifft, die beiden Umgebungen zusammenhaengend betrachtet. BEISPIELE present("chest"); --> findet das erste 'chest' Objekt present("chest 2"); --> findet das zweite 'chest' Objekt present("chest 2", 1); --> findet das erste 'chest 2' Objekt Wenn sich eine "chest" im this_object() befindet, und zwei ausserhalb: present("chest", 1) -> findet die chest im Objekt present("chest", 2) -> findet die erste chest ausserhalb present("chest", 3) -> findet die zweite chest ausserhalb Wenn ein Objekt die Forum " " in Verbindung mit einem selbst ueber add_action() gesetzten Verb unterstuetzen soll (damit z. B. "oeffne Kiste 3" funktioniert), kann das folgendermassen geloest werden: void init() { add_action("oeffne_kiste", "oeffne"); } int oeffne_kiste(string str) { if(present(str) != this_object() ) { return 0; /* nicht diese Kiste */ ... } } GESCHICHTE LDMud 3.2.11/3.3.610 fuehrte die (str, n)-Form ein. LDMud 3.3.713 aenderte die Numerierung wenn sowohl Inventory als auch Umgebung durchsucht werden. In der vorherigen Implementierung wurde eine Numerierung auf beiden Umgebungen einzeln angewandt, was zur Folge hatte, dass niedere Objekte in der aeusseren Umgebung nicht gefunden werden koennten, da sie von den Objekten in Inneren verdeckt wurden. SIEHE AUCH move_object(E), environment(E), this_object(E), present_clone(E), id(A), init(A)