heart_beat()

FUNKTION:
     protected void heart_beat();

DEFINIERT IN:
     /std/living/life.c
     /std/living/combat.c
     und anderen...
     kann auch in beliebigen Objekten selbst definiert werden.

BESCHREIBUNG:
     Diese Funktion wird alle zwei Sekunden vom GameDriver aufgerufen. Sie
     regelt in der MG-MudLib das Heilen von Spielern und Monstern, den
     Ablauf von Kampfrunden, die Verdauung etc.

     Da heart_beat() ziemlich viele Ressourcen des GameDrivers verbraet,
     sollte man Objekte mit heart_beat() nur so selten wie moeglich
     benutzen! Und selbst dann sollte der heart_beat() nicht die ganze Zeit
     ueber laufen, sondern sich so bald wie moeglich abschalten.

     Das Ein- und Ausschalten des heart_beat()s erfolgt mit
     set_heart_beat().

BEMERKUNGEN:
     1. Teuer, teuer, teuer!
     2. Soll euer Viech pro "echtem" Heartbeat mehrere Kampfrunden haben,
        benutzt dafuer SA_SPEED und ruft auf gar keinen Fall mehrfach 
        ::heart_beat() auf. Also _NICHT_
        void heart_beat() {
            ::heart_beat();
            ::heart_beat(); }
        sondern:
        SetProp(P_SKILL_ATTRIBUTE_OFFSETS, ([SA_SPEED: 200]) );

SIEHE AUCH:
     Efuns:     set_heart_beat(), absolute_hb_count(), set_next_reset()
     Fehler:    make_immortal(L)

----------------------------------------------------------------------------
22.3.2008, Zesstra

