do_damage()¶
do_damage(L)
FUNKTION¶
int do_damage(int dam,mixed enemy);
DEFINIERT IN¶
/std/living/life.c
ARGUMENTE¶
int dam
Die abzuziehenden Lebenspunkte (HP).
object enemy
Das Objekt, welches den Schaden zufuegt.
BESCHREIBUNG¶
Dem Lebewesen werden <dam> HP abgezogen. Falls weniger als 0 HP uebrig
bleiben, so stirbt es automatisch mittels die().
Ein Lebewesen, welches sich bewegt hat, trifft die ersten Kampfrunden
sehr viel schlechter, um Rein-Raus-Attacken zu verhindern. Dieses
Vorgehen kann man mittels P_ENABLE_IN_ATTACK_OUT deaktivieren.
Lebewesen, welche P_NO_ATTACK gesetzt haben, kann man mit dieser
Funktion nicht schaden.
RUeCKGABEWERT¶
Der tatsaechlich verursachte Schaden.
BEMERKUNGEN¶
Beim Gegner <enemy>, falls vorhanden, werden XP und ALIGN entsprechend
angepasst, im Opfer wird der Gegner in P_KILLER vermerkt, der Kampf wird
beendet.
Diese Funktion sollte nur selten direkt verwendet werden. Meist ist der
uebliche Weg ueber Defend() -> do_damage() -> die() die logisch bessere
und balancetechnisch guenstigere Loesung, da Defend() magische
Verteidigungen, die der Spieler bei sich hat beruecksichtigt.
Es sollte also allein schon aus Fairness gegenueber den Objekten
anderer Magier Defend() immer dem direkten reduce_hit_points() oder
do_damage() vorgezogen werden. Mittels der Flags in 'spell' kann man
sehr viele Parameter beeinflussen.
SIEHE AUCH¶
Verwandt: Defend(L), reduce_hit_points(L), die(L)
Props: P_NO_ATTACK, P_ENABLE_IN_ATTACK_OUT, P_KILLER
P_XP, P_ALIGN
23.Feb.2004 Gloinson