Morgengrauner Dokumentation
Dateipfad: /home/mud/mudlib/doc//lfun/GetHelperObjectGetHelperObject()
*****************
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 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
=========
// Es wird ein Helfer zum Tauchen mit der Staerke 4 gesucht
PL->GetHelperObject(HELPER_TYPE_AQUATIC, 4);
// 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;
}
);
// 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
==========
RegisterHelperObject(), UnregisterHelperObject(), P_AERIAL_HELPERS,
P_AQUATIC_HELPERS, P_HELPER_OBJECTS
Letzte Aenderung: 9.3.2018, Zesstra
zurück zur Übersicht