Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc/lfun/SetSpellFatigue

SetSpellFatigue()
*****************


FUNKTION
========

   public varargs int SetSpellFatigue(int duration, string key)


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

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


ARGUMENTE
=========

   int duration: Wie lang soll die Spruchermuedung andauern?
   string key  : Eindeutiger Name des Spruches, einer Gruppe von Spruechen
                 oder 0 fuer die globale Spruchermuedung.


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

   Diese Funktion dient zum Verwalten von individuellen Spruchermuedungen
   (Spellfatigue, Spruchsperren).
   Hiermit lassen sich unabhaengige Ermuedungen/Sperren fuer einzelne
   Sprueche oder Gruppen von Spruechen gestalten.

    ist die Zeit (in Sekunden), welche die Spruchermuedung
   anhalten soll (nicht die Endzeit).

   Wird  nicht angegeben oder ist 0, wird die globale Spruchsperre
   gesetzt (identisch zu der Property P_NEXT_SPELL_TIME), anderenfalls die
   unter  gespeicherte Spruchermuedung.
   Setzt man einen Eintrag ohne Angabe von  bedeutet dies damit auch,
   dass der Wert von P_NEXT_SPELL_TIME geaendert wird.


RUeCKGABEWERT
=============

   -1    Der Eintrag  ist noch nicht abgelaufen, es wurde _keine_
         neue Spruchermuedung/-Sperre gespeichert.

   >0    Eintrag wurde gespeichert, Rueckgabewert ist die Zeit, zu der die
         Sperre ablaeuft.


BEISPIELE
=========

   Ein Spell gehoert zu einer Gruppe von Spells mit dem Namen 'extrasuess'.
   Er darf nur ausgefuehrt werden, wenn seit 5s kein anderer Spruch aus der
   Gruppe ausgefuehrt wurde.
   if (CalculateSpellSuccess(...) > x) {
     // Spellfatigue setzen (und Erfolg pruefen!)
     if (ob->SetSpellFatigue(5, "extrasuess") > -1) {
       tell_object(ob, "Du fuetterst " + enemy->Name(WEN) + " mit einem "
         "Stueck suesser Schokotorte.\n");
       ...
     }
     else {
       // Sauerei! Zu ermuedet fuer diesen Spruch. Fehlermdeldung ...
     }
   }
   Dieses setzt natuerlich voraus, dass alle anderen Sprueche der Gruppe
   "extrasuess" den gleichen  pruefen und setzen.
   (Will man vor CalculateSpellSuccess() wissen, ob der Spruch ueberhaupt
    gewirkt werden duerfte, sollte man hierzu dann CheckSpellFatigue()
    verwenden.)


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

   Die genauen Zeitdauern koennen von Spielern beeinflusst werden, sie
   unterliegen der jeweiligen Einstellung von 'spruchermuedung', d.h. koennen
   auf volle 2s aufgerundet werden. (Dies ist nicht der Fall bei NPC.)
   Auch wenn diese Funktion zum Verwalten von beliebigen Zeitsperren genutzt
   werden koennen, beschraenkt euch bitte auf Spruchermuedungen und benutzt
   ansonsten check_and_update_timed_key(). Falls ihr diesbzgl. weitere/andere
   Wuensche habt, sprecht den/die Mudlib-EM an.


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


CheckSpellFatigue(L), DeleteSpellFatigue(L) P_NEXT_SPELL_TIME spruchermuedung

27.03.2010, Zesstra


zurück zur Übersicht

YOUTUBE | FACEBOOK | TWITTER | DISCORD | FEEDBACK | IMPRESSUM | DATENSCHUTZ 1992–2023 © MorgenGrauen.