diff --git a/doc/lfun/AddSpell b/doc/lfun/AddSpell
index 1661f8c..b8175e5 100644
--- a/doc/lfun/AddSpell
+++ b/doc/lfun/AddSpell
@@ -6,9 +6,10 @@
 FUNKTION
 ========
 
-   varargs int AddSpell(int rate, int damage, string TextForEnemy,
-                        string TextForOthers, string|string* dam_type,
-                        string|closure func, int|mapping spellarg)
+   varargs int AddSpell(int rate, int damage,
+      string|<int|spell>* TextForEnemy, string|<int|string>*
+      TextForOthers, string|string* dam_type, string|closure func,
+      int|mapping spellarg)
 
 
 DEFINIERT IN
@@ -21,85 +22,104 @@
 =========
 
    rate          - Relative Haeufigkeit der Anwendung (*),
-                   muss >= 0 sein
+      muss >= 0 sein
+
    damage        - Der Schadenswert fuer Defend(),
-                   muss > 0 sein
+      muss > 0 sein
+
    TextForEnemy  - Text, den der Feind erhalten soll
+      String <text> oder Array der Form ({<text>,<messagetype>})
+      (Siehe ReceiveMsg())
+
    TextForOthers - Text, den andere im Raum erhalten sollen
+      String <text> oder Array der Form ({<text>,<messagetype>})
+      (Siehe ReceiveMsg())
+
    dam_type      - Schadenstyp(en) fuer Defend(),
-                   (Default: ({DT_MAGIC}) )
+      (Default: ({DT_MAGIC}) fuer Magische und ({DT_BLUDGEON}) fuer
+      physikalische Angriffe)
+
    func          - Funktionsname oder Closure, die nach Anwendung
-                   aufgerufen werden soll
-                   (Optional, bekommt als Argumente object enemy,
-                   int real_damage, string* dam_type)
+      aufgerufen werden soll (Optional, bekommt als Argumente object
+      enemy, int real_damage, string* dam_type)
+
    spellarg      - Spell-Argument fuer Defend(), Default ist "1"
 
 
 BESCHREIBUNG
 ============
 
-   Ermoeglicht einfache Angriffs-Zaubersprueche fuer NPCs. Das Ausfuehren von
-   Spells verursacht bei dem NPC keine KP-Kosten.
+   Ermoeglicht einfache Angriffs-Zaubersprueche fuer NPCs. Das
+   Ausfuehren von Spells verursacht bei dem NPC keine KP-Kosten.
 
-   Mit P_SPELLRATE wird die generelle Wahrscheinlichkeit der Ausfuehrung
-   solcher Spells im Heartbeat angegeben, mit 'rate' kann man die relative
-   Wahrscheinlichkeit der Spells untereinander steuern.
+   Mit P_SPELLRATE wird die generelle Wahrscheinlichkeit der
+   Ausfuehrung solcher Spells im Heartbeat angegeben, mit 'rate' kann
+   man die relative Wahrscheinlichkeit der Spells untereinander
+   steuern.
 
    (*) Relative Haeufigkeit heisst, dass sich alle 'rate' der Spells
-   aufaddieren und ein einzelnes 'rate' dann in Relation zur Gesamtsumme
-   steht. D.h. drei Spells mit 80, 10, 10 (Summe 100) haben die selben
-   Aufruf-Wahrscheinlichkeiten wie drei Spells mit 120, 15, 15 oder drei
-   Spells mit 160, 20, 20.
+   aufaddieren und ein einzelnes 'rate' dann in Relation zur
+   Gesamtsumme steht. D.h. drei Spells mit 80, 10, 10 (Summe 100)
+   haben die selben Aufruf-Wahrscheinlichkeiten wie drei Spells mit
+   120, 15, 15 oder drei Spells mit 160, 20, 20.
 
    Ein Spell wird immer in folgender Reihenfolge abgearbeitet:
-    1. Die Texte werden an die Beteiligten ausgegeben.
-    2. Es wird ggf. SpellDefend gerufen (wenn kein SP_PHYSICAL_ATTACK).
-       Abbruch bei Schutz.
-    3. Im Opfer wird Defend() mit den angegebenen Werten aufgerufen.
-       Abbruch bei Tod/Zerstoerung des Opfers.
-    4. Eine Funktion, so definiert, wird ausgefuehrt.
+
+   1. Die Texte werden an die Beteiligten ausgegeben.
+
+   2. Es wird ggf. SpellDefend gerufen (wenn kein
+      SP_PHYSICAL_ATTACK). Abbruch bei Schutz.
+
+   3. Im Opfer wird Defend() mit den angegebenen Werten aufgerufen.
+      Abbruch bei Tod/Zerstoerung des Opfers.
+
+   4. Eine Funktion, so definiert, wird ausgefuehrt.
 
 
 BEMERKUNGEN
 ===========
 
-   TextForOthers wird vor der Ausgabe der Meldung durch replace_personal()
-   geschickt, d.h. es koennen Platzhalter wie @WER1, @WEMQP1 und aehnliche
-   verwendet werden (siehe auch die Manpage von replace_personal()).
-   Da Ersetzungen nur fuer das Gegnerobjekt beruecksichtigt werden, koennen
-   nur Platzhalter mit Endziffer 1 verwendet werden. Die Ersetzungen werden
-   so gesteuert, dass die eingefuegten Namen nach Satzanfaengen automatisch
-   gross geschrieben werden.
-   Frueher wurden statt replace_personal() die Platzhalter @WER, @WESSEN,
-   @WEM, @WEN verwendet. Diese funktionieren weiterhin, sollten aber nicht
-   mehr in neuem Code benutzt werden.
+   TextForOthers wird vor der Ausgabe der Meldung durch
+   replace_personal() geschickt, d.h. es koennen Platzhalter wie
+   @WER1, @WEMQP1 und aehnliche verwendet werden (siehe auch die
+   Manpage von replace_personal()). Da Ersetzungen nur fuer das
+   Gegnerobjekt beruecksichtigt werden, koennen nur Platzhalter mit
+   Endziffer 1 verwendet werden. Die Ersetzungen werden so gesteuert,
+   dass die eingefuegten Namen nach Satzanfaengen automatisch gross
+   geschrieben werden. Frueher wurden statt replace_personal() die
+   Platzhalter @WER, @WESSEN, @WEM, @WEN verwendet. Diese
+   funktionieren weiterhin, sollten aber nicht mehr in neuem Code
+   benutzt werden.
 
    In der von AddSpell gerufenen Methode "func" koennen speziellere
-   Sachen mit dem aktuellen Feind angestellt werden koennen. Die Methode
-   muss im selben Objekt definiert sein, sofern der Funktionsname und
-   keine Closure uebergeben wird.
+   Sachen mit dem aktuellen Feind angestellt werden. Die Methode muss
+   im selben Objekt definiert sein, sofern der Funktionsname und keine
+   Closure uebergeben wird.
 
-   Will man einen physischen Angriff ausloesen, MUSS <spellarg> ein Mapping
-   mit ([SP_PHYSICAL_ATTACK: 1]) sein. Bei Uebergeben einer 0 oder Weglassen
-   des Werts wird an Defend das Default '1' (da es Spells sind) uebergeben.
+   Will man einen physischen Angriff ausloesen, MUSS <spellarg> ein
+   Mapping mit ([SP_PHYSICAL_ATTACK: 1]) sein. Bei Uebergeben einer 0
+   oder Weglassen des Werts wird an Defend das Default '1' (da es
+   Spells sind) uebergeben.
 
-   Wenn damage<=0 oder rate<0 oder keine Meldungen uebergeben werden, wird
-   der Spell NICHT eingetragen, sondern die Funktion bricht mit Rueckgabe
-   von 0 ab.
+   Wenn damage<=0 oder rate<0 oder keine Meldungen uebergeben werden,
+   wird der Spell NICHT eingetragen, sondern die Funktion bricht mit
+   Rueckgabe von 0 ab.
 
 
 BEISPIELE
 =========
 
+code-block:
+
    // #1 Einfacher NPC mit drei Spells, Gesamtrate = 100, also sind die
    //    Raten direkt als Prozent Aufrufwahrscheinlichkeit lesbar.
    AddSpell(80, 400,
             "Der Hexer greift Dich mit einem kleinen Feuerball an.\n",
             "Der Hexer greift @WEN mit einem kleinen Feuerball an.\n",
-            ({DT_FIRE, DT_MAGIC}));
+              ({DT_FIRE, DT_MAGIC}));
    AddSpell(10, 800,
             "Der Hexer greift Dich mit einem riesigen Feuerball an.\n",
-            "Der Hexer greift @WEN mit einem riesigen Feuerball an.\n",
+              "Der Hexer greift @WEN mit einem riesigen Feuerball an.\n",
             ({DT_FIRE, DT_MAGIC}));
    AddSpell(8, 100,
             "Der Hexer piekst Dir in die Augen!",
@@ -108,21 +128,28 @@
    AddSpell(2, 5, (string)0, (string)0, (string*)0, "salto_mortalis");
 
    (Kleiner Feuerball mit 80% Wahrscheinlichkeit, riesiger mit 10%,
-    "augen_stechen" mit 8%, "salto_mortalis" mit 2%)
+   "augen_stechen" mit 8%, "salto_mortalis" mit 2%)
+
+code-block:
 
    // Die Funktion "augen_stechen" kann dann so aussehen:
-   void augen_stechen(object enemy, int damage, mixed dam_types ) {
-     if (damage>10 && !enemy->QueryProp(P_BLIND)) {
+   void augen_stechen(object enemy, int damage, mixed dam_types )
+   {
+     if (damage>10 && !enemy->QueryProp(P_BLIND))
+     {
        enemy->SetProp(P_BLIND, 1);
        if(enemy->QueryProp(P_BLIND))
          tell_object(enemy, "Du bist nun blind!\n");
      }
    }
 
+code-block:
+
    // Zur Funktion "salto_mortalis" gibt es keine Meldungen, dennoch
    // wird Defend mit: enemy->Defend(5, ({DT_MAGIC}), 1, this_object())
    // gerufen!
-   void salto_mortalis(object enemy, int damage, mixed dam_types ) {
+   void salto_mortalis(object enemy, int damage, mixed dam_types )
+   {
      // dem geneigten Leser ueberlassen, den Gegner zu toeten
    }
 
@@ -132,6 +159,7 @@
    //    DefendFuncs() ausgewertet). Es muss auch eine physische Schadensart
    //    enthalten sein!
    //    SpellDefend() wird bei diesem Flag nicht mehr am Gegner gerufen.
+
    AddSpell(100, 200+random(200),
      "Die kleine Ratte beisst Dich!\n",
      "@WER wird von einer kleinen Ratte gebissen!\n",
@@ -153,7 +181,7 @@
      "@WER wird von einer kleinen Ratte in die Wade gebissen!\n",
      ({DT_PIERCE, DT_POISON}), (string)0,
      ([SP_PHYSICAL_ATTACK:1, SP_NO_ACTIVE_DEFENSE:1,
-       SP_REDUCE_ARMOUR: armours]));
+     SP_REDUCE_ARMOUR: armours]));
 
    // SP_NO_ACTIVE_DEFENSE = 1 schaltet aktive Abwehr (Karate/Klerus) ab
    // SP_REDUCE_ARMOUR enthaelt eine Liste von Ruestungstypen mit ihren
@@ -164,10 +192,10 @@
 SIEHE AUCH
 ==========
 
-   Sonstiges:  SpellAttack, SpellDefend, Defend, QueryDefend, SelectEnemy
-               replace_personal
-   Properties: P_DISABLE_ATTACK, P_SPELLRATE, P_AGGRESSIVE
-   Abwehr:     Defend, Defend_bsp, SpellDefend
-   Methoden:   modifiers
+   Sonstiges: *SpellAttack()*, *SpellDefend()*, *Defend()*,
+   *QueryDefend()*, *SelectEnemy()*, *ReceiveMsg()*,
+   *replace_personal()*
 
-Zuletzt geaendert: 20.11.2016, Bugfix
+   Properties: *P_DISABLE_ATTACK*, *P_SPELLRATE*, *P_AGGRESSIVE*
+
+Letzte Aenderung: 15.02.2018, Bugfix
