Dokumentations-Update

Change-Id: I133ea88f76745da5debd488ac683ffeb1894825b
diff --git a/doc/lfun/Pacify b/doc/lfun/Pacify
index feca7bf..8b94854 100644
--- a/doc/lfun/Pacify
+++ b/doc/lfun/Pacify
@@ -18,33 +18,29 @@
 BESCHREIBUNG
 ============
 
-         Diese Funktion versucht, ein Lebewesen zu befrieden.
+   Diese Funktion versucht, ein Lebewesen zu befrieden.
    Will eine Gilde ein Lebewesen befrieden, muss sie hierfuer diese Funktion
    in dem Lebewesen aufrufen.
 
-   Ein immer befriedbarer NPC kann durch das Setzen von P_ACCEPT_PEACE in einem
-   Lebewesen realisiert werden.
+   Ein immer befriedbarer NPC kann durch das Setzen von P_ACCEPT_PEACE in
+   einem Lebewesen realisiert werden.
 
-         Standardmaessig funktioniert die Funktion wie folgt:
+   Standardmaessig funktioniert die Funktion wie folgt:
+
    * Kommt der Versuch vom Spellcaster selbst, ist er immer erfolgreich.
    * Kommt der Versuch von einem Teamkollegen, ist er immer erfolgreich.
    * Hat das Lebewesen keine Gegner, ist der Versuch immer erfolglos.
+
    In diesen Faellen erfolgt auch keine Erhoehung des Befriedezaehlers.
 
-
-
    In anderen Faellen wird die in P_PEACE_HISTORY fuer die Gilde des Casters
    abgelegte Zahl erfolgreicher Befriedungen (ANZ), die Intelligenz des
    Casters (INT_CASTER) und die Intelligenz des Lebenwesens selber (INT_ME)
    ermittelt.
    Anschliessend wird eine Wahrscheinlichkeit w ausgerechnet:
 
-
-
      w = (INT_CASTER + 10 - ANZ*4) / (INT_ME + 10)
 
-
-
    Hierbei gibt w die Chance auf eine erfolgreiche Befriedung an. Mittels einer
    Zufallszahl wird bestimmt, ob der aktuelle Versuch erfolgreich ist. Falls
    ja, wird der Zaehler fuer die Gilde des Casters in P_PEACE_HISTORY erhoeht.
@@ -56,12 +52,14 @@
 BEMERKUNGEN
 ===========
 
-   *     Die Funktion kann auch ueberschrieben werden, um ein vom Magier
-     gewuenschtes Verhalten zu realisieren. Ein komplettes Abhaengen von
-     Befriedungen sollte dabei aber die Ausnahme sein!
-   * Diese Funktion verwaltet auch das P_PEACE_HISTORY, speziell die Reduktion
-     der Erfolgszaehler. Ueberschreibt man sie ohne das geerbte Pacify()
-     zu nutzen, wird P_PEACE_HISTORY nicht mehr verwaltet.
+   * Die Funktion kann auch ueberschrieben werden, um ein vom Magier
+     gewuenschtes Verhalten zu realisieren. Ein komplettes Abhaengen
+     von Befriedungen sollte dabei aber die Ausnahme sein!
+
+   * Diese Funktion verwaltet auch das P_PEACE_HISTORY, speziell die
+     Reduktion der Erfolgszaehler. Ueberschreibt man sie ohne das
+     geerbte Pacify() zu nutzen, wird P_PEACE_HISTORY nicht mehr
+     verwaltet.
 
 
 RUECKGABEWERTE
@@ -74,10 +72,11 @@
 BEISPIELE
 =========
 
-      Angenommen, der Caster hat eine Intelligenz von 22. Die folgende Tabelle
-      gibt dann die Wahrscheinlichkeiten fuer eine erfolgreiche Befriedung an:
-      (in Abhaengigkeit von eigener Intelligenz und vergangener erfolgreicher
-       Versuche)
+    Angenommen, der Caster hat eine Intelligenz von 22. Die folgende Tabelle
+    gibt dann die Wahrscheinlichkeiten fuer eine erfolgreiche Befriedung an:
+    (in Abhaengigkeit von NPC-Intelligenz INT_ME und vergangener erfolgreicher
+    Versuche).
+
    INT_ME  Erfolgswahrscheinlichkeiten je nach Anzahl erfolgreicher Versuche
                 1       2       3       4       5       6       7       8
         0     280     240     200     160     120      80      40       0
diff --git a/doc/props/P_GUILD_RATING b/doc/props/P_GUILD_RATING
index af9c24e..8fb181e 100644
--- a/doc/props/P_GUILD_RATING
+++ b/doc/props/P_GUILD_RATING
@@ -31,10 +31,16 @@
    aus den Faehigkeiten des Mitglieds zusammen und mitunter fliessen
    auch Gildenquests oder aehnliches mit ein.
 
+   Spieler erhalten 1 Stufenpunkt fuer je 25 Punkte Gildenrating, d.h.
+   400 Stufenpunkte bei Max-Rating. Gildenmagier sollten sich daher gut
+   ueberlegen, ob sie bei der Berechnung des Ratings eine Formel zugrunde
+   legen wollen, die verhindert, dass Spieler ein Max-Rating erreichen
+   koennen.
+
 
 SIEHE AUCH
 ==========
 
    P_NEWSKILLS, GuildRating
 
-Last modified: Wed Jan 14 19:17:06 1998 by Patryn
+Last modified: 2021-01-10, Arathorn
diff --git a/doc/props/obsolete/P_TMP_DEFEND_HOOK b/doc/props/obsolete/P_TMP_DEFEND_HOOK
index f29d342..144f7a4 100644
--- a/doc/props/obsolete/P_TMP_DEFEND_HOOK
+++ b/doc/props/obsolete/P_TMP_DEFEND_HOOK
@@ -27,12 +27,14 @@
    veraendert werden.
 
    Es wird an dem Living die Property als mindestens 3-elementiges Array
-   ({zeitpunkt, objekt, methode, ...})
+
+      ({int zeitpunkt, object objekt, string methode, ...})
+
    gesetzt und die Methode 'methode' wird dann waehrend des Defend() des
    Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
 
    Der Methode werden die Parameter der Defend() uebergeben:
-   int dam, mixed dam_type, mixed spell, object enemy
+   int dam, string* dam_type, int|mapping spell, object enemy
    - spell ist definitiv ein Mapping - ein an Defend() uebergebener
      int-Wert wurde aequivalent umgesetzt.
    - dam_type ist definitiv ein Array von Schadenswerten oder einem Wert
@@ -40,10 +42,10 @@
    Zudem findet der Aufruf der Methode nach dem Abarbeiten der P_DEFENDERS
    statt, diese koennen also weitere Modifikationen vorgenommen haben.
 
-   Gibt die Funktion:
+   Gibt die Methode:
    - 0 zurueck, wird Defend() abgebrochen (und damit der Schaden voellig
      abgefangen) - nur noch die Flucht wird geprueft
-   - ein 3-elementiges Array ({schaden, schadenstypen, spell}) zurueck,
+   - ein 3-elementiges Array ({dam, dam_type, spell}) zurueck,
      werden diese Werte in der Defend() an Stelle der uebergebenen Werte
      verwendet
    - weder noch zurueck, wird das Ergebnis ignoriert und die Defend laeuft
@@ -54,78 +56,87 @@
 ===========
 
    - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
-   - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
-     Property auf 0 gesetzt
-   - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
+   - Der korrekte Union-Datentyp fuer die Property ist
+     <int|object|string>* fuer die normale Nutzung mit 3 Elementen.
+     Ein weit verbreiteter Anwendungsfall verwendet 2 weitere Elemente,
+     die vom Typ int und string|string* sind. Alle Stellen, die die Property
+     abfragen, sollten daher den Union-Datentyp <int|object|string|string*>*
+     verwenden. Das Beispiel beruecksichtigt diesen Fall bereits.
+   - Falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
+     Property auf 0 gesetzt.
+   - Vor dem Setzen immer auf die Existenz eines gueltigen Hooks
      pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
-     im Code anderer und ist andererseits unfair gegenueber ihnen
+     im Code anderer und ist andererseits unfair gegenueber ihnen.
 
 
 BEISPIEL
 ========
 
    *** ein gruener Schutzzauber ***
-   // Setzen der Prop
-   ...
-   tmp=TP->QueryProp(P_TMP_DEFEND_HOOK);
+   // Vor dem Setzen der Prop pruefen, ob schon ein Hook gesetzt ist.
 
-   // ein etwas ausfuehrlicher Check, ob wir ueberschreiben koennen,
-   // Existenz && Gueltigkeit
-   if(pointerp(tmp) && sizeof(tmp) && intp(tmp[0]) && (time()<tmp[0]))
-    write("Der Zauber klappt nicht!\n");
+   <int|object|string|string*>* tmp = TP->QueryProp(P_TMP_DEFEND_HOOK);
+
+   // Ein etwas ausfuehrlicherer Check, ob wir ueberschreiben koennen,
+   // Existenz && noch nicht abgelaufen?
+   if(sizeof(tmp) && intp(tmp[0]) && time() < tmp[0]) {
+     write("Der Zauber klappt nicht!\n");
+   }
    else {
-    // der Zauber gilt eine Stunde
-    TP->SetProp(P_TMP_DEFEND_HOOK,({time()+3600,TO,"abwehrfun");
-    write("Ein Zauber legt sich auf dich.\n");
+     // der Zauber gilt eine Stunde
+     TP->SetProp(P_TMP_DEFEND_HOOK,({time()+3600,TO,"abwehrfun");
+     write("Ein Zauber legt sich auf Dich.\n");
    }
    ...
 
    // die gerufene Methode
-   mixed abwehrfun(int dam, string* dam_type, mapping spell, object en) {
-    // keine rekursiven Schaeden abfangen ... mindestens ein magischer
-    // muss auch dabei sein
-    if((!mappingp(spell) || !spell[SP_RECURSIVE]) &&
-       sizeof(filter(dam_type,MAGICAL_DAMAGE_TYPES))) {
+   int|<int|string*|mapping>* abwehrfun(int dam, string* dam_type,
+                                    mapping spell, object en)
+   {
+     // keine rekursiven Schaeden abfangen ... mindestens ein magischer
+     // muss auch dabei sein
+     if(!spell[SP_RECURSIVE] &&
+        sizeof(filter(dam_type,MAGICAL_DAMAGE_TYPES))) {
+       // mit 10% Whkeit schuetzt der Zauber total
+       if(!random(10)) {
+         tell_object(previous_object(),
+           "Dein Zauber gleisst rund um Dich gruen auf.\n");
+         tell_room(environment(previous_object()), break_string(
+           previous_object()->Name(WESSEN)+" Haut gleisst rund um "+
+           previous_object()->QueryPronoun(WEN)+" gruen auf.",78),
+           ({previous_object()}));
 
-     // mit 10% Whkeit schuetzt der Zauber total
-     if(!random(10)) {
-      tell_object(previous_object(),
-        "Dein Zauber gleisst rund um dich gruen auf.\n");
-      tell_room(environment(previous_object()), break_string(
-        previous_object()->Name(WESSEN)+" Haut gleisst rund um "+
-        previous_object()->QueryPronoun(WEN)+" gruen auf.",78),
-        ({previous_object()}));
+         // manchmal geht der Zauber dabei endgueltig kaputt
+         if(!random(10))
+           previous_object()->SetProp(P_TMP_DEFEND_HOOK, 0);
 
-      // manchmal geht der Zauber dabei endgueltig kaputt
-      if(!random(10)) previous_object()->SetProp(P_TMP_DEFEND_HOOK, 0);
+         return 0;                    // volles Abfangen des Angriffs
+       }
 
-      return 0;                       // volles Abfangen des Angriffs
+       // der Zauber schuetzt auf jeden Fall immer ein bischen
+       tell_object(previous_object(),
+         "Dein Zauber flackert rund um dich gruen auf.\n");
+       tell_room(environment(previous_object()), break_string(
+         previous_object()->Name(WESSEN)+" Haut flackert rund um "+
+         previous_object()->QueryPronoun(WEN)+" gruen auf.",78),
+         ({previous_object()}));
+       dam = (7+random(2))*dam/10;    // Schaden reduzieren
+
+       return(({dam, dam_type, spell}));
      }
 
-     // der Zauber schuetzt auf jeden Fall immer ein bischen
-     tell_object(previous_object(),
-       "Dein Zauber flackert rund um dich gruen auf.\n");
-     tell_room(environment(previous_object()), break_string(
-       previous_object()->Name(WESSEN)+" Haut flackert rund um "+
-       previous_object()->QueryPronoun(WEN)+" gruen auf.",78),
-       ({previous_object()}));
-     dam=(7+random(2))*dam/10;        // Schaden reduzieren
-
-     return(({dam, dam_type, spell}));
-    }
-
-    // der Zauber schuetzt dann gar nicht ...
-    return 1;
+     // der Zauber schuetzt dann gar nicht ...
+     return 1;
    }
 
 
 SIEHE AUCH
 ==========
 
-   Angriff:   Attack(L)
-   Schutz:    Defend(L)
-   Verwandt:  InternalModifyDefend(L), P_TMP_ATTACK_MOD
-   Hooks:     P_TMP_DIE_HOOK, P_TMP_MOVE_HOOK, P_TMP_ATTACK_HOOK
+   Angriff:      Attack(L)
+   Schutz:     Defend(L)
+   Verwandt:   InternalModifyDefend(L), P_TMP_ATTACK_MOD
+   Hooks:          P_TMP_DIE_HOOK, P_TMP_MOVE_HOOK, P_TMP_ATTACK_HOOK
    neue Hooks: std/hooks
 
-08.12.2008, Zesstra
+29.12.2020, Arathorn
diff --git a/doc/sphinx/lfun/Pacify.rst b/doc/sphinx/lfun/Pacify.rst
index 8a68c42..495f6c1 100644
--- a/doc/sphinx/lfun/Pacify.rst
+++ b/doc/sphinx/lfun/Pacify.rst
@@ -17,20 +17,20 @@
 ------------
 ::
 
-	Diese Funktion versucht, ein Lebewesen zu befrieden.
+  Diese Funktion versucht, ein Lebewesen zu befrieden.
   Will eine Gilde ein Lebewesen befrieden, muss sie hierfuer diese Funktion
   in dem Lebewesen aufrufen.
 
-  Ein immer befriedbarer NPC kann durch das Setzen von P_ACCEPT_PEACE in einem
-  Lebewesen realisiert werden.
+  Ein immer befriedbarer NPC kann durch das Setzen von P_ACCEPT_PEACE in 
+  einem Lebewesen realisiert werden.
 
-	Standardmaessig funktioniert die Funktion wie folgt:
+  Standardmaessig funktioniert die Funktion wie folgt:
+
   * Kommt der Versuch vom Spellcaster selbst, ist er immer erfolgreich.
   * Kommt der Versuch von einem Teamkollegen, ist er immer erfolgreich.
   * Hat das Lebewesen keine Gegner, ist der Versuch immer erfolglos.
-  In diesen Faellen erfolgt auch keine Erhoehung des Befriedezaehlers.
 
-  
+  In diesen Faellen erfolgt auch keine Erhoehung des Befriedezaehlers.
 
   In anderen Faellen wird die in P_PEACE_HISTORY fuer die Gilde des Casters
   abgelegte Zahl erfolgreicher Befriedungen (ANZ), die Intelligenz des
@@ -38,12 +38,8 @@
   ermittelt.
   Anschliessend wird eine Wahrscheinlichkeit w ausgerechnet:
 
-  
-
     w = (INT_CASTER + 10 - ANZ*4) / (INT_ME + 10)
 
-  
-
   Hierbei gibt w die Chance auf eine erfolgreiche Befriedung an. Mittels einer
   Zufallszahl wird bestimmt, ob der aktuelle Versuch erfolgreich ist. Falls
   ja, wird der Zaehler fuer die Gilde des Casters in P_PEACE_HISTORY erhoeht.
@@ -53,9 +49,8 @@
 
 BEMERKUNGEN
 -----------
-::
 
-  *	Die Funktion kann auch ueberschrieben werden, um ein vom Magier
+  * Die Funktion kann auch ueberschrieben werden, um ein vom Magier
     gewuenschtes Verhalten zu realisieren. Ein komplettes Abhaengen von
     Befriedungen sollte dabei aber die Ausnahme sein!
   * Diese Funktion verwaltet auch das P_PEACE_HISTORY, speziell die Reduktion
@@ -68,17 +63,17 @@
 
     1 - das Lebewesen wurde erfolgreich befriedet..
     0 - der Befriedeversuch ist gescheitert.
-
     
 
 BEISPIELE
 ---------
 ::
 
-    Angenommen, der Caster hat eine Intelligenz von 22. Die folgende Tabelle
-    gibt dann die Wahrscheinlichkeiten fuer eine erfolgreiche Befriedung an:
-    (in Abhaengigkeit von eigener Intelligenz und vergangener erfolgreicher
-     Versuche)
+  Angenommen, der Caster hat eine Intelligenz von 22. Die folgende Tabelle
+  gibt dann die Wahrscheinlichkeiten fuer eine erfolgreiche Befriedung an:
+  (in Abhaengigkeit von NPC-Intelligenz INT_ME und vergangener erfolgreicher
+  Versuche).
+
  INT_ME  Erfolgswahrscheinlichkeiten je nach Anzahl erfolgreicher Versuche
               1       2       3       4       5       6       7       8
       0     280     240     200     160     120      80      40       0
@@ -142,7 +137,5 @@
 
 LETZTE AENDERUNG
 ----------------
-::
-
 07.06.2008, Zesstra
 
diff --git a/doc/sphinx/props/P_GUILD_RATING.rst b/doc/sphinx/props/P_GUILD_RATING.rst
index b752e00..aa6862d 100644
--- a/doc/sphinx/props/P_GUILD_RATING.rst
+++ b/doc/sphinx/props/P_GUILD_RATING.rst
@@ -26,9 +26,16 @@
 -----------
 ::
 
-	Der Wert muss von der Gilde ermittelt werden! Meist setzt er sich
-	aus den Faehigkeiten des Mitglieds zusammen und mitunter fliessen
-	auch Gildenquests oder aehnliches mit ein.
+  Der Wert muss von der Gilde ermittelt werden! Meist setzt er sich
+  aus den Faehigkeiten des Mitglieds zusammen und mitunter fliessen
+  auch Gildenquests oder aehnliches mit ein.
+
+  Spieler erhalten 1 Stufenpunkt fuer je 25 Punkte Gildenrating, d.h.
+  400 Stufenpunkte bei Max-Rating. Gildenmagier sollten sich daher gut
+  ueberlegen, ob sie bei der Berechnung des Ratings eine Formel zugrunde
+  legen wollen, die verhindert, dass Spieler ein Max-Rating erreichen
+  koennen.
+
 
 SIEHE AUCH
 ----------
@@ -37,5 +44,5 @@
     P_NEWSKILLS, GuildRating
 
 
-Last modified: Wed Jan 14 19:17:06 1998 by Patryn
+Last modified: 2021-01-10, Arathorn 
 
diff --git a/doc/sphinx/props/obsolete/P_TMP_DEFEND_HOOK.rst b/doc/sphinx/props/obsolete/P_TMP_DEFEND_HOOK.rst
index 5d9ae39..5074ab0 100644
--- a/doc/sphinx/props/obsolete/P_TMP_DEFEND_HOOK.rst
+++ b/doc/sphinx/props/obsolete/P_TMP_DEFEND_HOOK.rst
@@ -26,12 +26,14 @@
      veraendert werden.
 
      Es wird an dem Living die Property als mindestens 3-elementiges Array
-     ({zeitpunkt, objekt, methode, ...})
+
+        ({int zeitpunkt, object objekt, string methode, ...})
+
      gesetzt und die Methode 'methode' wird dann waehrend des Defend() des
      Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
 
      Der Methode werden die Parameter der Defend() uebergeben:
-     int dam, mixed dam_type, mixed spell, object enemy
+     int dam, string* dam_type, int|mapping spell, object enemy
      - spell ist definitiv ein Mapping - ein an Defend() uebergebener
        int-Wert wurde aequivalent umgesetzt.
      - dam_type ist definitiv ein Array von Schadenswerten oder einem Wert
@@ -39,10 +41,10 @@
      Zudem findet der Aufruf der Methode nach dem Abarbeiten der P_DEFENDERS
      statt, diese koennen also weitere Modifikationen vorgenommen haben.
 
-     Gibt die Funktion:
+     Gibt die Methode:
      - 0 zurueck, wird Defend() abgebrochen (und damit der Schaden voellig
        abgefangen) - nur noch die Flucht wird geprueft
-     - ein 3-elementiges Array ({schaden, schadenstypen, spell}) zurueck,
+     - ein 3-elementiges Array ({dam, dam_type, spell}) zurueck,
        werden diese Werte in der Defend() an Stelle der uebergebenen Werte
        verwendet
      - weder noch zurueck, wird das Ergebnis ignoriert und die Defend laeuft
@@ -53,79 +55,88 @@
 ::
 
      - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
-     - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
-       Property auf 0 gesetzt
-     - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
+     - Der korrekte Union-Datentyp fuer die Property ist
+       <int|object|string>* fuer die normale Nutzung mit 3 Elementen.
+       Ein weit verbreiteter Anwendungsfall verwendet 2 weitere Elemente,
+       die vom Typ int und string|string* sind. Alle Stellen, die die Property
+       abfragen, sollten daher den Union-Datentyp <int|object|string|string*>*
+       verwenden. Das Beispiel beruecksichtigt diesen Fall bereits.
+     - Falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
+       Property auf 0 gesetzt.
+     - Vor dem Setzen immer auf die Existenz eines gueltigen Hooks
        pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
-       im Code anderer und ist andererseits unfair gegenueber ihnen
+       im Code anderer und ist andererseits unfair gegenueber ihnen.
 
 BEISPIEL
 --------
 ::
 
      *** ein gruener Schutzzauber ***
-     // Setzen der Prop
-     ...
-     tmp=TP->QueryProp(P_TMP_DEFEND_HOOK);
+     // Vor dem Setzen der Prop pruefen, ob schon ein Hook gesetzt ist.
 
-     // ein etwas ausfuehrlicher Check, ob wir ueberschreiben koennen,
-     // Existenz && Gueltigkeit
-     if(pointerp(tmp) && sizeof(tmp) && intp(tmp[0]) && (time()<tmp[0]))
-      write("Der Zauber klappt nicht!\n");
+     <int|object|string|string*>* tmp = TP->QueryProp(P_TMP_DEFEND_HOOK);
+
+     // Ein etwas ausfuehrlicherer Check, ob wir ueberschreiben koennen,
+     // Existenz && noch nicht abgelaufen?
+     if(sizeof(tmp) && intp(tmp[0]) && time() < tmp[0]) {
+       write("Der Zauber klappt nicht!\n");
+     }
      else {
-      // der Zauber gilt eine Stunde
-      TP->SetProp(P_TMP_DEFEND_HOOK,({time()+3600,TO,"abwehrfun");
-      write("Ein Zauber legt sich auf dich.\n");
+       // der Zauber gilt eine Stunde
+       TP->SetProp(P_TMP_DEFEND_HOOK,({time()+3600,TO,"abwehrfun");
+       write("Ein Zauber legt sich auf Dich.\n");
      }
      ...
 
      // die gerufene Methode
-     mixed abwehrfun(int dam, string* dam_type, mapping spell, object en) {
-      // keine rekursiven Schaeden abfangen ... mindestens ein magischer
-      // muss auch dabei sein
-      if((!mappingp(spell) || !spell[SP_RECURSIVE]) &&
-         sizeof(filter(dam_type,MAGICAL_DAMAGE_TYPES))) {
+     int|<int|string*|mapping>* abwehrfun(int dam, string* dam_type,
+                                      mapping spell, object en)
+     {
+       // keine rekursiven Schaeden abfangen ... mindestens ein magischer
+       // muss auch dabei sein
+       if(!spell[SP_RECURSIVE] &&
+          sizeof(filter(dam_type,MAGICAL_DAMAGE_TYPES))) {
+         // mit 10% Whkeit schuetzt der Zauber total
+         if(!random(10)) {
+           tell_object(previous_object(),
+             "Dein Zauber gleisst rund um Dich gruen auf.\n");
+           tell_room(environment(previous_object()), break_string(
+             previous_object()->Name(WESSEN)+" Haut gleisst rund um "+
+             previous_object()->QueryPronoun(WEN)+" gruen auf.",78),
+             ({previous_object()}));
 
-       // mit 10% Whkeit schuetzt der Zauber total
-       if(!random(10)) {
-        tell_object(previous_object(),
-          "Dein Zauber gleisst rund um dich gruen auf.\n");
-        tell_room(environment(previous_object()), break_string(
-          previous_object()->Name(WESSEN)+" Haut gleisst rund um "+
-          previous_object()->QueryPronoun(WEN)+" gruen auf.",78),
-          ({previous_object()}));
+           // manchmal geht der Zauber dabei endgueltig kaputt
+           if(!random(10))
+             previous_object()->SetProp(P_TMP_DEFEND_HOOK, 0);
 
-        // manchmal geht der Zauber dabei endgueltig kaputt
-        if(!random(10)) previous_object()->SetProp(P_TMP_DEFEND_HOOK, 0);
+           return 0;			// volles Abfangen des Angriffs
+         }
 
-        return 0;			// volles Abfangen des Angriffs
+         // der Zauber schuetzt auf jeden Fall immer ein bischen
+         tell_object(previous_object(),
+           "Dein Zauber flackert rund um dich gruen auf.\n");
+         tell_room(environment(previous_object()), break_string(
+           previous_object()->Name(WESSEN)+" Haut flackert rund um "+
+           previous_object()->QueryPronoun(WEN)+" gruen auf.",78),
+           ({previous_object()}));
+         dam = (7+random(2))*dam/10;	// Schaden reduzieren
+
+         return(({dam, dam_type, spell}));
        }
 
-       // der Zauber schuetzt auf jeden Fall immer ein bischen
-       tell_object(previous_object(),
-         "Dein Zauber flackert rund um dich gruen auf.\n");
-       tell_room(environment(previous_object()), break_string(
-         previous_object()->Name(WESSEN)+" Haut flackert rund um "+
-         previous_object()->QueryPronoun(WEN)+" gruen auf.",78),
-         ({previous_object()}));
-       dam=(7+random(2))*dam/10;	// Schaden reduzieren
-
-       return(({dam, dam_type, spell}));
-      }
-
-      // der Zauber schuetzt dann gar nicht ...
-      return 1;
+       // der Zauber schuetzt dann gar nicht ...
+       return 1;
      }
 
 SIEHE AUCH
 ----------
 ::
 
-     Angriff:	Attack(L)
-     Schutz:    Defend(L)
-     Verwandt:	InternalModifyDefend(L), P_TMP_ATTACK_MOD
-     Hooks:	P_TMP_DIE_HOOK, P_TMP_MOVE_HOOK, P_TMP_ATTACK_HOOK
+     Angriff:	   Attack(L)
+     Schutz:     Defend(L)
+     Verwandt:	 InternalModifyDefend(L), P_TMP_ATTACK_MOD
+     Hooks:	     P_TMP_DIE_HOOK, P_TMP_MOVE_HOOK, P_TMP_ATTACK_HOOK
      neue Hooks: std/hooks
 
-08.12.2008, Zesstra
+29.12.2020, Arathorn