FUNKTION:
varargs string *RemoveBodyzone(mixed bzone, int no_child,
int no_parents)
DEFINIERT IN:
/sys/living/body.h
/std/living/body.c
ARGUMENTE:
mixed bzone: String oder Array aus Strings mit bzu_name(s) der zu
entfernenden Koerperzonen
int no_child: Wenn gesetzt, werden die angehaengten Zonen NICHT
entfernt. Vorsicht: kann dazu fuehren, dass
'verbundene' Zonen danach nicht mehr verbunden,
sondern eigenstaendig sind.
Bsp: Bein entfernen -> Fuss haengt 'in der Luft'
int no_parents: zu entfernende zonen werden nicht aus den Eltern
ausgetragen darf nur bei rekursiven Aufrufen der
Funktion != 0 sein! Ist es != 0, so heisst das,
die Kinder muessen sich nicht bei ihren Eltern
austragen, da diese sowieso geloescht werden
RÜCKGABEWERT:
Array aus Strings. Es enthaelt die erfolgreich entfernten
Koerperzonen. Das koennen durchaus mehr sein, als das angegebene
Argument bzone.
BESCHREIBUNG:
Die Funktion wird erst nach der Einfuehrung des Koerperzonen-
Konzeptes (ca. Juli 2002) ausgewertet!
Wenn die angegebene Zone im Opfer noch vorhanden ist, wird sie
DAUERHAFT! entfernt. Das Hinzufuegen von Bodyzonen geschieht mit
AddBodyzone().
Diese Funktion ist eher fuer das Erstellen extravaganter Bodytypen
gedacht. Zum zeitweiligen Abhacken von Koerperteilen muss
TruncateBodyzone() benutzt werden!!!
BEISPIELE:
Kleine Beispiele zum Spielen mit dem Xtool (jeweils mit
vollstaendigem Koerper):
* xcall $m->RemoveBodyzone("lHand")
Result: ({"lHand"})
* xcall $m->RemoveBodyzone(({"lHand", "rHand"}))
Result: ({"lHand", "rHand"})
* xcall $m->RemoveBodyzone("lBein")
Result: ({"lBein", "lFuss"})
und im Gegensatz dazu:
* xcall $m->RemoveBodyzone(({"lBein"}), 1)
Result: ({"lBein"})
SIEHE AUCH:
RestoreBodyzone(L), AddBodyzone(L), QueryBodyzone(L),GetBodyType(L),
RestoreAllBodyzones(L), TruncateBodyzone(L), CreateBody(L),
GetBodyzones(L), GetZonesByType(L), SetBodyzone(L), QueryBodyzone(L),
koerperzonen(WL), P_MAX_HANDS
|