********************* OBSOLETE LFUN ***********************************
* Diese Efun bitte nicht mehr benutzen, sondern stattdessen die       *
* Hooks (s. /doc/std/hooks).                                          *
***********************************************************************
NotifyHpChange()

FUNKTION:
	void NotifyHpChange();

DEFINIERT IN:
	/std/player/life.c

ARGUMENTE:
	keine

BESCHREIBUNG:
	Wenn sich die Lebenspunkte eines Spielers aendern, so werden davon
	auch andere Objekte unterrichtet, sofern diese mittels der Funktion
	AddHpHook() bei eben diesem Spieler angemeldet wurden.
	Fortan wird dann die Funktion NotifyHpChange() in diesen
	angemeldeten Objekten aufgerufen, wenn sich die Property P_HP des
	Spielers aendert. Es werden hierbei keine Argumente an
	NotifyHpChange() uebergeben, die aktuellen Lebenspunkte kann man ja
	auch ohne weiteres ueber die Property P_HP in Erfahrung bringen und
	aeltere Werte muss man sich gesondert merken. Zu beachten ist, dass
	die Property P_HP bei Aufruf der Funktion NotifyHpChange() bereits
	den neuen Wert enthaelt.
	Bei dem Spieler angemeldete Objekte, die von Lebenspunkteaenderungen
	informiert werden sollen, werden automatisch aus der Liste entfernt,
	wenn sie zerstoert wurden. Diese Liste ist in der Property
	P_HP_HOOKS zu finden. Per Hand kann man sie auch explizit mittels
	der Funktion RemoveHpHook() entfernen.
	Stirbt ein Spieler, so wird die Funktion NotifyPlayerDeath()
	aufgerufen und nicht NotifyHpChange()!

RUeCKGABEWERT:
	keiner

BEISPIELE:
	ist in Arbeit

SIEHE AUCH:
	P_HP, P_HP_HOOKS, AddHpHook(), RemoveHpHook(),
	Defend(), do_damage(), NotifyPlayerDeath()

----------------------------------------------------------------------------
Last modified: Thu Nov 19 13:54:33 1998 by Patryn
