Dokumentation zu: koerperzonen(WL)

HR Image


KONZEPT:
	Koerperzonen fuer das neue Kampfsystem im Wunderland

AUTOREN:
	Elric, Holger, Gum

UEBERBLICK:
	Ein Schaden trifft einen oder mehrere Teile des Koerpers. Und
	zwar eine Koerperzone (oder Kombination) aus folgenden. Deswegen
	muss bei einem Living gesetzt werden, welche Koerperzonen es
	ueberhaupt hat.

	Die (B)ody(Z)ones:
	BZ_TRUNK - Rumpf ohne Extremitaeten
	BZ_ARM   - Arme
	BZ_LEG   - Beine
	BZ_HAND  - Haende
	BZ_FEET  - Fuesse
	BZ_HEAD  - Kopf
	BZ_TAIL  - Schwanz
	BZ_WING  - Fluegel

	Ein Lebewesen besteht also aus einer Kombination von Koerperzonen,
	die miteinander verbunden sind und in gewisser Weise von einander
	abhaengig sind. (Das Abhacken von BZ_ARM fuehrt auch zum Verlust
	von BZ_HAND.)

	Fuer die meisten Lebewesen gibt es Standard-Bodies, die dem Magier
	die Arbeit abnehmen. Man kann sie mittels CreateBody() setzen.
	Derzeit gibt es:

	BODYTYPE_HUMANOID  - Humanoide (Mensch, Kaeuer, Gnom etc)
	BODYTYPE_HORSE     - Pferdaehnliche (Pferd, Esel, Reh)
	BODYTYPE_FISH      - Fische (2 Brust-, 2 After-, Ruecken- und
	                     Schwanzflosse)
	BODYTYPE_INSECT    - Insekten mit 6 Beinen ohne Fluegel
	BODYTYPE_INSECT1   - Insekten mit 2 Fluegeln
	BODYTYPE_INSECT2   - Insekten mit 4 Fluegeln
	BODYTYPE_SPIDER    - Spinne (8 Beine)
	BODYTYPE_DRAGON    - Drache (4 Beine, 1 Kopf, 2 Fluegel, Schwanz)
	BODYTYPE_CAT       - Katzen, Loewen etc.
	BODYTYPE_TREE      - Baeume (je 6 Aeste/Zweige, Stamm und Krone)
	BODYTYPE_REPTILE   - Echsen (4 Beine, 4 Klauen, Kopf, Schwanz)
	BODYTYPE_SNAKE     - Schlangen
	BODYTYPE_BIRD      - Voegel
	BODYTYPE_MONKEY    - Humanoide mit Schwanz
  BODYTYPE_BEAR      - Tier mit 4 Tatzen und ohne Schwanz

	Wem das nicht reicht, muss die Koerperzonen seiner Monster selbst
	deklarieren. Dazu gibt es AddBodyZone().
	Angeben sollte man fuer die Zonen:

	BZO_TYP        (0) - Unique-Name: ein eindeutiger Bezeichner
	BZO_NAME       (1) - Name, der bei Treffern ausgegeben wird
	BZO_PLURAL     (2) - Pluralform des Namens
	BZO_GENDER     (3) - Grammatikalisches Geschlecht der Zone
	BZO_NAME_ADJ   (4) - Adjektiv (links, rechts, hinten, vorn etc.)
	BZO_DAM_FACTOR (5) - Wie stark ein Treffer auf diese Zone auf
	                     das Lebewesen insgesamt wirkt
	BZO_HIT_CHANCE (6) - Prozentsatz, wie wahrscheinlich ein Treffer
	                     hier ist
	BZO_CORPSE     (7) - Leichenteilobjekt, wenn es eins geben soll
	BZO_ARMOUR     (8) - Array aus Ruestungen, die diese Zone schuetzen
	BZO_WEAPON     (9) - Waffe/Schild, die/das von dieser Zone
	                     getragen wird
	BZO_FLAGS     (10) - Flags fuer Funktionen, z.B. angreifende Zone,
	                     waffentragende Zone, Todeszone, tragende Zone
	BZO_CONNECTED (11) - mit dieser Zone verbundene andere Zonen
	BZO_TRUNCATED (12) - Ist die Zone abgetrennt?

	Zum dauerhaften Entfernen von Koerperzonen gibt es RemoveBodyzone(),
	Fuer das zeitweise Abschneiden TruncateBodyzone() und fuer das
	Wieder-Annaehen RestoreBodyzone(). Ausserdem besteht die Moeglichkeit
	saemtliche Offsets (Werte zu den einzelnen Keys einer Bodyzone)
	mittels QueryBodyzone() abzufragen und einige Offsets auch mittels
	SetBodyzone() zu veraendern.

	Die einzelnen Werte der Bodyzonen haben vor allem ihre Auswirkungen
	auf das Kampfgeschehen. BZO_HIT_CHANCE ist fuer die Berechnung im
	Attack() - um auszurechnen, wo man hintrifft.
	BZO_DAM_FACTOR ist ein Faktor, der angibt, wie stark ein Treffer
	auf diese Zone auf das Monster insgesamt wirkt. Dann waeren 20%
	etwa so zu verstehen, dass der Treffer (100) auf den Arm zu 20%
	auf das Gesamtmonster wirkt. Also 20 Schadenspunkte, die abzuziehen
	waeren.

	Einige Properties beziehen sich auf die Bodyzonen. Z.B. P_MAX_HANDS,
	P_USED_HANDS, in Verbindung damit auch P_WEAPONS und P_ARMOURS. (Eine
	Koerperzone, die abgetrennt ist, kann auch keine Ruestung tragen.)

	Ebenso werden sich die "natuerlichen" Angriffsmoeglichkeiten der
	Lebewesen auf Koerperzonen beziehen. Angreifen kann ein Lebewesen
	nur, wenn es eine attackierende oder waffenfaehige/-tragende
	Koerperzone hat.

SIEHE AUCH:
	TruncateBodyzone(L), AddBodyzone(L), CreateBody(L), GetZonesByType(L),
	GetBodyType(L), RestoreBodyzone(L), QueryBodyzone(L), GetBodyzones(L),
	RestoreAllBodyzones(L), SetBodyzone(L), RemoveBodyzone(L),
	P_MAX_HANDS, P_USED_HANDS, P_WEAPONS, P_ARMOURS, AddHandsAttack(L)


Start » Magierhandbuch » Docu » Konzepte » Koerperzonen Letzte Generierung: 25.04.2021, 01:58
Email an: mud@wl.mud.de
Valid HTML 4.01!