blob: 2d588391765b331d4df4152fad1b73dbdcbfb0e3 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001do_damage(L)
2FUNKTION:
3 int do_damage(int dam,mixed enemy);
4
5DEFINIERT IN:
6 /std/living/life.c
7
8ARGUMENTE:
9 int dam
10 Die abzuziehenden Lebenspunkte (HP).
11 object enemy
12 Das Objekt, welches den Schaden zufuegt.
13
14BESCHREIBUNG:
15 Dem Lebewesen werden <dam> HP abgezogen. Falls weniger als 0 HP uebrig
16 bleiben, so stirbt es automatisch mittels die().
17 Ein Lebewesen, welches sich bewegt hat, trifft die ersten Kampfrunden
18 sehr viel schlechter, um Rein-Raus-Attacken zu verhindern. Dieses
19 Vorgehen kann man mittels P_ENABLE_IN_ATTACK_OUT deaktivieren.
20 Lebewesen, welche P_NO_ATTACK gesetzt haben, kann man mit dieser
21 Funktion nicht schaden.
22
23RUeCKGABEWERT:
24 Der tatsaechlich verursachte Schaden.
25
26BEMERKUNGEN:
27 Beim Gegner <enemy>, falls vorhanden, werden XP und ALIGN entsprechend
28 angepasst, im Opfer wird der Gegner in P_KILLER vermerkt, der Kampf wird
29 beendet.
30 Diese Funktion sollte nur selten direkt verwendet werden. Meist ist der
31 uebliche Weg ueber Defend() -> do_damage() -> die() die logisch bessere
32 und balancetechnisch guenstigere Loesung, da Defend() magische
33 Verteidigungen, die der Spieler bei sich hat beruecksichtigt.
34 Es sollte also allein schon aus Fairness gegenueber den Objekten
35 anderer Magier Defend() immer dem direkten reduce_hit_points() oder
36 do_damage() vorgezogen werden. Mittels der Flags in 'spell' kann man
37 sehr viele Parameter beeinflussen.
38
39SIEHE AUCH:
40 Verwandt: Defend(L), reduce_hit_points(L), die(L)
41 Props: P_NO_ATTACK, P_ENABLE_IN_ATTACK_OUT, P_KILLER
42 P_XP, P_ALIGN
43
4423.Feb.2004 Gloinson