Manpages als reStructuredText erstellt
Unsere Manpages wurden mit einem LPC-Tool in
reStructuredText konvertiert und liegen jetzt
in diesem Verzeichnis als Quelldaten.
Aus diesen reStructuredText sollen dann per
Script die ASCII-Manpages und per Sphinx HTML u.a.
erzeugt werden.
Change-Id: I75d659a7b3f9863aecb11dbeb0037e6cae227c36
diff --git a/doc/sphinx/lfun/SetSpellFatigue.rst b/doc/sphinx/lfun/SetSpellFatigue.rst
new file mode 100644
index 0000000..16b5a6f
--- /dev/null
+++ b/doc/sphinx/lfun/SetSpellFatigue.rst
@@ -0,0 +1,100 @@
+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.
+
+ <duration> ist die Zeit (in Sekunden), welche die Spruchermuedung
+ anhalten soll (nicht die Endzeit).
+
+ Wird <key> nicht angegeben oder ist 0, wird die globale Spruchsperre
+ gesetzt (identisch zu der Property P_NEXT_SPELL_TIME), anderenfalls die
+ unter <key> gespeicherte Spruchermuedung.
+ Setzt man einen Eintrag ohne Angabe von <key> bedeutet dies damit auch,
+ dass der Wert von P_NEXT_SPELL_TIME geaendert wird.
+
+RUeCKGABEWERT
+-------------
+::
+
+ -1 Der Eintrag <key> 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 <key> 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
+