DeleteSpellFatigue()
********************


FUNKTION
========

   public void DeleteSpellFatigue(string key)


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

   /std/living/skills.c
   /std/player/skills.c
   /sys/living/skills.h


ARGUMENTE
=========

   string key  : Eindeutiger Name des Spruches, einer Gruppe von Spruechen
                 oder 0 fuer die globale Spruchermuedung.


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

   Diese Funktion dient zum Loeschen von individuellen Spruchermuedungen
   (Spellfatigue, Spruchsperren).

   Ist <key> 0, wird die globale Spruchsperre geloescht (identisch zu der
   Property P_NEXT_SPELL_TIME), anderenfalls die unter <key> gespeicherte
   Spruchermuedung.
   Loescht man einen Eintrag 0 ist das Ergebnis dieser Funktion identisch zum
   Loeschen/Nullen von P_NEXT_SPELL_TIME.


BEMERKUNGEN
===========

   Spruchsperren (insb. fremde) duerfen nicht ohne weiteres geloescht oder
   geaendert werden. Dieses bedarf grundsaetzlich der Genehmigung durch die
   Gildenbalance!


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

   SetSpellFatigue(L), CheckSpellFatigue(L)
   P_NEXT_SPELL_TIME
   spruchermuedung

27.03.2010, Zesstra
