HListHooks()
************


FUNKTION
========

   int* HListHooks()


DEFINIERT IN
============

   /std/hook_provider.c /sys/hook.h


ARGUMENTE
=========

   keine


BESCHREIBUNG
============

   Diese Methode liefert eine Liste von Hooktypen, fuer die das Objekt
   Registrierungen akzeptiert. Standardmaessig bieten die Mudlib-
   Basis- objekte folgende Hooks an: Spielerobjekte: H_HOOK_MOVE,
   H_HOOK_DIE, H_HOOK_DEFEND, H_HOOK_ATTACK,

      H_HOOK_HP, H_HOOK_SP, H_HOOK_ATTACK_MOD, H_HOOK_ALCOHOL
      H_HOOK_FOOD, H_HOOK_DRINK, H_HOOK_POISON, H_HOOK_CONSUME,
      H_HOOK_TEAMROWCHANGE ,H_HOOK_INSERT

   NPCs: H_HOOK_MOVE, H_HOOK_DIE, H_HOOK_DEFEND, H_HOOK_ATTACK,
      H_HOOK_ATTACK_MOD, H_HOOK_ALCOHOL, H_HOOK_FOOD, H_HOOK_DRINK,
      H_HOOK_POISON, H_HOOK_CONSUME, H_HOOK_TEAMROWCHANGE

   Raeume: H_HOOK_EXIT_USE, H_HOOK_INIT Dinge: keine


RUECKGABEWERTE
==============

   Integer-Array der angebotenen Hook-IDs


BEISPIEL
========

   // Bietet das Objekt einen Consume-Hook an?
   if(H_HOOK_CONSUME in ob->HListHooks())
   {
     do_something();
   }


SIEHE AUCH
==========

   HRegisterToHook(), HUnregisterFromHook(), HIsHookConsumer()

Letzte Aenderung: 06.10.2022, Bugfix
