FUNKTION:
     int UnregisterHelperObject(object helper, int type);

DEFINIERT IN:
     /std/living/helpers.c

ARGUMENTE:
     object helper
       Das Objekt, das als Hilfsobjekt deregistriert werden soll.
     int type
       Helfertyp, einer der in /sys/living/helpers.h definierten Typen:
       - HELPER_TYPE_AERIAL fuer die Flug-/Segelunterstuetzung
       - HELPER_TYPE_AQUATIC fuer Tauchunterstuetzung

BESCHREIBUNG:
     Das als Hilfsobjekt fuer bestimmte Aktivitaeten wie zum Beispiel Tauchen
     oder Fliegen bei einem Lebewesen registrierte Objekt "helper" meldet
     sich bei diesem ab.
     Hinweis: fuer eine temporaer gueltige "Nicht-Zustaendigkeit" kaeme auch
     in Frage, in dieser Zeit einfach "0" zurueckzugeben, statt sich
     komplett abzumelden.

RUECKGABEWERTE:
      1  Objekt wurde erfolgreich ausgetragen (HELPER_SUCCESS)
     -1  angegebenes Hilfsobjekt existiert nicht (HELPER_NO_CALLBACK_OBJECT)
     -3  angegebenes Hilfsobjekt war gar nicht angemeldet
         (HELPER_NOTHING_TO_UNREGISTER)

BEISPIEL:
     Eine luftgefuellte Blase hatte sich als Tauch-Helfer am Spieler
     angemeldet, ist jetzt aber verbraucht und meldet sich daher ab:

     // Austragen im Spielerobjekt
     void BlaseAustragen() {
       [...]
       if ( TP->UnregisterHelperObject(ME, HELPER_TYPE_AQUATIC)
            == HELPER_SUCCESS )
         remove();
     }

SIEHE AUCH:
     Funktionen:  RegisterHelperObject()
     Properties:  P_HELPER_OBJECTS, P_AERIAL_HELPERS, P_AQUATIC_HELPERS
     Sonstiges:   /sys/living/helpers.h

19.02.2013 Arathorn

