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