GetHelperObject() ================= FUNKTION -------- public varargs object GetHelperObject(int type, int|closure strength varargs mixed* extra) DEFINIERT IN ------------ /std/living/helpers.c ARGUMENTE --------- type: Eine der in helpers.h definierten Konstanten strength: minimal geforderte Staerke des Helfers oder Closure zum Filtern der Helferobjekte. extra: Beliebige und beliebig viele Argumente, welche an die Closure weitergegeben werden. BESCHREIBUNG ------------ Gibt das zuerst gefundene als Helfer registrierte Objekt zurueck, welches die Anforderungen erfuellt. Ist ein int, muss die Staerke/Guete des Helfers (Rueckgabewert der Callback-Methode, siehe :doc:`RegisterHelperObject`) mindestens so gross sein wie der als uebergebene Wert. Ist eine Closure, wird diese fuer jeden Helfer ausgewertet und entscheidet, ob der Helfer akzeptiert wird. Die Closure bekommt hierbei das Helferobjekt, die vom Helfer angegebene Staerke/Guete und etwaige hier als uebergebene Argument uebergeben. Ist der Rueckgabewert von != 0, wird der Helfer akzeptiert und von GetHelperObject zurueckgegeben (ohne weitere Helfer zu pruefen). RUECKGABEWERT ------------- Objekt welches den uebergebenen Anforderungen entspricht. BEISPIELE --------- .. code-block:: pike // Es wird ein Helfer zum Tauchen mit der Staerke 4 gesucht PL->GetHelperObject(HELPER_TYPE_AQUATIC, 4); .. code-block:: pike // Es wird ein Helfer zum Fliegen mit der Staerke 4 gesucht, welcher aber // mindestens 60 cm gross und maximal 900 g schwer ist. PL->GetHelperObject(HELPER_TYPE_AERIAL, function int (object h, int s) { return s >= 4 && h->QueryProp(P_SIZE) >= 60 && h->QueryProp(P_WEIGHT) <= 900; } ); .. code-block:: pike // Es wird ein Helfer zum Fliegen mit der Staerke 4 gesucht, welcher aber // mindestens 60 cm gross und maximal 900 g schwer ist, aber diese Grenzen // werden nicht in der Funktion festgelegt, sondern als uebergeben. PL->GetHelperObject(HELPER_TYPE_AERIAL, function int (object h, int s, int min_s, int minsize, int maxweight) { return s >= min_s && h->QueryProp(P_SIZE) >= minsize && h->QueryProp(P_WEIGHT) <= maxweight; }, 4, 60, 900); SIEHE AUCH ---------- :doc:`RegisterHelperObject`, :doc:`UnregisterHelperObject`, :doc:`../props/P_AERIAL_HELPERS`, :doc:`../props/P_AQUATIC_HELPERS`, :doc:`../props/P_HELPER_OBJECTS` Letzte Aenderung: 9.3.2018, Zesstra