| 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 |
| <strength> weitergegeben werden. |
| |
| |
| BESCHREIBUNG |
| ============ |
| |
| Gibt das zuerst gefundene als Helfer registrierte Objekt zurueck, |
| welches die Anforderungen erfuellt. |
| |
| Ist <strength> ein int, muss die Staerke/Guete des Helfers |
| (Rueckgabewert der Callback-Methode, siehe RegisterHelperObject()) |
| mindestens so gross sein wie der als <strength> uebergebene Wert. |
| |
| Ist <strength> 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 <extra> uebergebene Argument |
| uebergeben. Ist der Rueckgabewert von <strength> != 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 <extra> 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 |