FilterArmours() =============== FUNKTION -------- :: public object *FilterArmours(closure filterfun, varargs mixed* extra) DEFINIERT IN ------------ :: /std/living/clothing.c ARGUMENTE --------- :: closure filterfun Die Closure, die entscheiden soll, ob eine Ruestung im Ergebnisarray enthalten sein soll. mixed extra Beliebig viele Extra-Argumente, die uebergeben werden. BESCHREIBUNG ------------ :: Diese Funktion ruft fuer jede getragene Ruestung des Lebewesen mit der jeweiligen Ruestung als Argument auf und liefert ein Array mit allen Ruestungen zurueck, fuer die einen Wert != 0 zurueckliefert. Die Argumente werden als zusaetzliche Parameter an uebergeben und duerfen keine Referenzen sein. Diese Variante ist zu bevorzugen, wenn man Ruestungen nach bestimmten Kriterien durchsuchen will und QueryArmourByType() nicht ausreichend sein sollte. RUeCKGABEWERT ------------- :: Ein Array von Objekten mit allen passenden Ruestungen. BEISPIELE --------- :: 1) Ich moechte gerne alle Ruestungen haben, die beschaedigt sind: private int _is_damaged(object ruestung) { return ruestung->QueryProp(P_DAMAGE); } ... object *damaged_armours = PL->FilterArmours(#'_is_damaged); 2) Ich moechte alle Ruestungen, die groesser als 50cm sind. private int _armour_is_bigger(object ruestung, int size) { return ruestung->QueryProp(P_SIZE) > size; } ... object *big_armours = PL->FilterArmours(#'_amour_is_bigger, 50); 3) alle Ruestungen mit einer speziellen ID. private int _has_id(object ruestung, string idstr) { return ruestung->id(idstr); } object *has_id = PL->FilterArmours(#'_has_id, "\ntolleruestung"); 4) alle Ruestungen mit einer speziellen ID, die groesser als 50cm sind. private int _has_id(object ruestung, string idstr, int size) { return ruestung->id(idstr) && ruestung->QueryProp(P_SIZE) > size; } object *has_id = PL->FilterArmours(#'_has_id, "\ntolleruestung", 50); 5) ueberhaupt alle getragene Ruestung object *rue = PL->FilterArmours(#'objectp) SIEHE AUCH ---------- :: Wear(), WearArmour(), WearClothing(), Unwear(), UnwearArmour(), UnwearClothing() P_CLOTHING, P_ARMOURS FilterClothing(), QueryArmourByType() ZULETZT GEAeNDERT ----------------- :: 14.03.2009, Zesstra