
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
