FUNKTION:
static varargs int AddBodyzone(string bzu_name, int bztyp,
string bzname, string bzplural, int bzgender, mixed bzname_adj,
int bzdam_factor, int bzhit_chance, int bzflags, string bzcorpse,
string bzconnect)
DEFINIERT IN:
/sys/living/body.h
/std/living/body.c
ARGUMENTE:
string bzu_name : Unique Name - ein eindeutiger Bezeichner
int bztyp : BZ_HEAD, BZ_BODY, etc
string bzname : Name, der bei Treffern ausgegeben wird
string bzplural : Pluralname von bzname
int bzgender : Grammatikalisches Geschlecht der Zone
mixed bzname_adj : Adjektiv zur Zone
int bzdam_factor : wie stark wirkt ein Treffer hier auf den Gesamtbody
int bzhit_chance : Prozentsatz, wie wahrscheinlich ein Treffer. Die
Summe der Trefferchancen aller Zonen muss 100 sein.
int bzflags : Flags der Zone
string bzcorpse : Leichenteil zu dieser Zone?
string bzconnect : Zone gehoert zu welcher anderen Zone?
RÜCKGABEWERT:
0 - Misserfolg (Zone gibt es schon)
1 - Erfolg
BESCHREIBUNG:
Der bzu_name kann frei gewaehlt werden. Sollte sich aber evtl. an vor-
handenen orientieren. Eingebuergert haben sich "lHand" fuer linke Hand,
"Rumpf" fuer den Koerper oder "hlBein" fuer linkes Hinterbein.
Der bztyp kann sein:
BZ_TRUNK - Rumpf ohne Extremitäten
BZ_ARM - Arme
BZ_LEG - Beine
BZ_HANDS - Haende
BZ_FEET - Fuesse
BZ_HEAD - Kopf
BZ_TAIL - Schwanz
BZ_WING - Fluegel
Die Angabe von bzname, bzplural und bzname_adj erfolgt als string.
bzgender erfordert eine Angabe analog P_GENDER.
bzdam_factor gibt an, wie stark sich ein Treffer an dieser Zone auf
das gesamte Lebewesen auswirkt. Die Werte sind Prozentwerte. Ein Wert
von 120 als bzdam_factor bewirkt also, dass ein Schaden von 10 auf
diese Zone mit 12 Schadenspunkten auf das gesamte Lebewesen wirkt.
bzhit_chance gibt die Trefferwahrscheinlichkeit an. Die Summe aller
Zonen muss 100 ergeben!
bzflags koennen sein:
BZF_ATTACK 1 - Angreifende Koerperzone
BZF_WZONE 2 - Waffenfuehrende Koerperzone (geht vor)
BZF_NOCUT 4 - Koerperzone kann man nicht abhacken
BZF_CUTKILLS 8 - Abhacken der Zone ist toedlich
bzcorpse kann den Pfad des Objektes enthalten, das geclont werden soll,
wenn der Koerperteil abgetrennt wird.
bzconnect enthaelt ein Array mit den Unique-Namen der verbundenen
Zonen.
BEMERKUNG:
Fuer Standardbeduerfnisse gibt es Standardbodies, die mittels
CreateBody(int bodytyp) angewandt werden koennen.
BEISPIEL:
Fuer das 3. Bein auf der linken Seite einer Ameise:
AddBodyzone("lBein3", // Unique-Name
BZ_LEG, // Bodyzone
"Hinterbein", // Singular-Name
"Hinterbeine", // Plural-Name
NEUTER, // Geschlecht
"link", // Adjektiv
70, // Damage-Faktor ist 70%
10, // Treffer-Chance ist 10%
0, // Kein Flag - keine Attack-Zone
0, // kein Leichenteil-Objekt
"Rumpf"); // Bein ist mit dem Rumpf verbunden
SIEHE AUCH:
RestoreBodyzone(L), RestoreAllBodyzones(L), QueryBodyzone(L),
TruncateBodyzone(L), RemoveBodyzone(L), CreateBody(L), GetBodyType(L),
GetBodyzones(L), GetZonesByType(L), SetBodyzone(L), GetBodyzones(L),
koerperzonen(WL), P_MAX_HANDS
|