FUNKTION:
object *locate_objects( string desc, int info );
ARGUMENTE:
desc: Die Umschreibung des gesuchten Objektes.
info: Ist ungleich 0, wenn diese Funktion von
/std/living/put_and_get.c
aus aufgerufen wurde.
BESCHREIBUNG:
Diese Funktion erweitert die Funktionalitaet von present_objects()
insofern, als dass es moeglich ist, auch noch Behaelter innerhalb des
Behaelters zu durchsuchen. Das genaue Verhalten haengt von 'desc' ab:
Ist 'desc' von der Form "<id>", so wird das Ergebnis von
present_objects(desc) zurueckgegeben.
Ist 'desc' von der Form "<gesucht> in <id>", so wird in allen Objekten,
die von present_objects("<id>") erfasst wurden,
locate_objects("<desc>") aufgerufen. Zurueckgegeben werden alle auf
diese Weise gefundenen Objekte.
RÜCKGABEWERT:
Array von Objekten, die auf die oben geschilderte Art und Weise
ermittelt wurden. Konnte kein Objekt ermittelt werden, wird ein leeres
Array zurueckgegeben.
BEMERKUNGEN:
Theoretisch sollte es moeglich sein, ueber desc rekursiv mehrere
Behaelterebenen erfassen zu koennen (etwa mit "schwert in beutel in
beutel in wargon"). In der aktuellen Implementierung klappt das jedoch
nicht; nach dem ersten "in" ist Schluss!
BEISPIELE:
Was steckt alles dem Beutel, den der Spieler bei sich traegt?
object *obs;
obs = this_player()->locate_objects("alles in beutel");
Traegt der Spieler keinen Beutel bei sich oder ist dieser leer, so wird
ein leeres Array zurueckgegeben.
SIEHE AUCH:
present_objects(L)
|