diff --git a/doc/lfun/AddSpell b/doc/lfun/AddSpell
index b08a296..a8623e0 100644
--- a/doc/lfun/AddSpell
+++ b/doc/lfun/AddSpell
@@ -7,7 +7,7 @@
 ========
 
    varargs int AddSpell(int rate, int damage,
-      string|<int|spell>* TextForEnemy, string|<int|string>*
+      string|<int|string>* TextForEnemy, string|<int|string>*
       TextForOthers, string|string* dam_type, string|closure func,
       int|mapping spellarg)
 
@@ -27,25 +27,26 @@
    damage        - Der Schadenswert fuer Defend(),
       muss > 0 sein
 
-   TextForEnemy  - Text, den der Feind erhalten soll
+   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())
+   TextForOthers - Text, den andere im Raum erhalten sollen.
+      String <text> ode Array der Form ({<text>,<messagetype>}) (Siehe
+      ReceiveMsg())
 
    dam_type      - Schadenstyp(en) fuer Defend(),
       (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
+      aufgerufen werden soll. (Optional, bekommt als Argumente object
       enemy, int real_damage, string* dam_type)
 
    sinfo         - Skillinfomapping, muss SI_SPELL mit den SP_* fuer
-      den Aufruf von Defend() enthalten Default ist ([SI_SPELL:
-      ([SP_PHYSICAL_ATTACK: 0]), SI_MAGIC_TYPE: ({ MT_ANGRIFF }) ])
+      den Aufruf von Defend() enthalten. Hierfuer muss <newskills.h>
+      includiert werden. Default ist ([SI_SPELL: ([SP_PHYSICAL_ATTACK:
+      0]), SI_MAGIC_TYPE: ({ MT_ANGRIFF }) ])
 
 
 BESCHREIBUNG
diff --git a/doc/lfun/AddVItem b/doc/lfun/AddVItem
index b46b297..0b48656 100644
--- a/doc/lfun/AddVItem
+++ b/doc/lfun/AddVItem
@@ -7,8 +7,7 @@
 ========
 
    public varargs void AddvItem(string key, int refresh, mapping
-   shadowprops,
-      string path, mapping props)
+   shadowprops, string path, mapping props)
 
 
 DEFINIERT IN
@@ -78,11 +77,11 @@
       * VI_REFRESH_NONE Es wird erst nach dem Neuladen/Neuerstellen
         des Containers wieder verfuegbar.
 
-      * VI_REFRESH_ALWAYS Es wird mit dem naechsten Reset wieder
-        verfuegbar. *Vorsicht!*
+      * VI_REFRESH_ALWAYS
 
       * VI_REFRESH_REMOVE Es wird mit dem naechsten Reset wieder
-        verfuegbar, wenn das geclonte Objekt nicht mehr im Raum ist.
+        verfuegbar, wenn das Item genommen wurde (auch wenn es danach
+        wieder um Raum abgelegt wurde). *Vorsicht*
 
       * VI_REFRESH_DESTRUCT Es wird mit dem naechsten Reset wieder
         verfuegbar, wenn das geclonte Objekt nicht mehr existiert.
diff --git a/doc/lfun/DefendOther b/doc/lfun/DefendOther
index 2b706f5..ea9f8e5 100644
--- a/doc/lfun/DefendOther
+++ b/doc/lfun/DefendOther
@@ -6,8 +6,8 @@
 FUNKTION
 ========
 
-   public <int|string*|mapping>* DefendOther(int dam, string* dam_type,
-                                       int|mapping si_spell, object enemy)
+   public <int|string*|mapping|object>* DefendOther(int dam,
+                      string* dam_type, int|mapping si_spell, object enemy)
 
 
 DEFINIERT IN
diff --git a/doc/lfun/RemoveVItem b/doc/lfun/RemoveVItem
index 8a1d88b..922d031 100644
--- a/doc/lfun/RemoveVItem
+++ b/doc/lfun/RemoveVItem
@@ -1,6 +1,6 @@
 
-AddvItem()
-**********
+RemoveVItem()
+*************
 
 
 FUNKTION
diff --git a/doc/lfun/consume b/doc/lfun/consume
index f07ece3..48926d8 100644
--- a/doc/lfun/consume
+++ b/doc/lfun/consume
@@ -23,11 +23,23 @@
 =========
 
    cinfo
-       Mapping mit Informationen ueber die Gesundheitsaenderung
-       Heilung.
+     Mapping mit Informationen ueber die Gesundheitsaenderung. Folgende
+     Schluessel koennen verwendet werden:
+     H_EFFECTS - Mapping der zu aendernden Properties mit dem Umfang der
+                 Aenderung, erlaubte Properties siehe H_ALLOWED_EFFECTS
+                 (P_HP, P_SP, P_POISON).
+     H_CONDITIONS - Mapping der zu pruefenden Properties mit dem Umfang der
+                    Aenderung, erlaubte Properties siehe
+                    H_ALLOWED_CONDITIONS (P_FOOD, P_DRINK, P_ALCOHOL)
+     H_DISTRIBUTION - Verteilung der Aenderung fuer P_HP, P_SP
+                      HD_INSTANT:  sofortige Heilung
+                      HD_STANDARD: 5 pro Heartbeat
+                      1 - 50:      angebene Zahl pro Heartbeat
+     Aenderungen koennen sowohl positiv als auch negativ sein.
+
    testonly
-       Gibt an, ob nur die Bedingungen abgetestet werden sollen,
-       oder auch die Wirkung eintreten soll.
+     Gibt an, ob nur die Bedingungen abgetestet werden sollen, oder
+     auch die Wirkung eintreten soll.
 
 
 RUECKGABEWERT
@@ -35,11 +47,16 @@
 
     1 erfolgreich konsumiert
     0 keine oder falsche Aenderungsdaten in cinfo (nicht benutzbar)
-   <0 Bedingung fuer konsumieren nicht erfuellt, Bitset aus:
+   <0 Bedingung fuer konsumieren nicht erfuellt.
+      Der Rueckgabewert ist dann ein Bitset aus:
       HC_MAX_FOOD_REACHED    - Kann nichts mehr essen
       HC_MAX_DRINK_REACHED   - Kann nichts mehr trinken
       HC_MAX_ALCOHOL_REACHED - Kann nichts mehr saufen
-      HC_HOOK_CANCELLETION   - durch H_HOOK_CONSUME abgebrochen
+      HC_HOOK_CANCELLATION   - durch H_HOOK_CONSUME abgebrochen
+
+    Hinweis: Wenn eine der Bedingungen nicht erfuellt ist, wird gar keine
+    Heilung ausgefuehrt, aber es sind stets alle Fehlercodes im
+    Rueckgabewert eingetragen.
 
 
 BESCHREIBUNG
@@ -51,49 +68,38 @@
    erledigen. Sie vereint in sich die Pruefung auf Durchfuerbarkeit der
    Aenderung und Anwendung der Aenderung.
 
-   Der erste Parameter gibt die Eigenschaften der Aenderung an, der zweite ob
-   ausschliesslich die Pruefung auf Anwendbarkeit erfolgen soll.
-
-   Das Mapping cinfo hat folgende Struktur:
-   a) Einfache Angabe der betroffenen Properties. In neuem Code bitte nicht
-      machen, dort ein Mapping wie unter b) beschrieben nutzen!
-
-   b) Strukturiert in Effekte und Bedingungen mit folgenden Schluesseln:
-     H_EFFECTS - Mapping der zu aendernden Properties mit dem Umfang der
-                 Aenderung, erlaubte Properties siehe H_ALLOWED_EFFECTS
-
-     H_CONDITIONS - Mapping der zu pruefenden Properties mit dem Umfang der
-                    Aenderung, erlaubte Properties siehe H_ALLOWED_CONDITIONS
-
-     H_DISTRIBUTION - Verteilung der Aenderung fuer P_SP, P_HP
-                      HD_INSTANT bzw. 0: instante Heilung
-                      1 - 50: angebene Zahl pro Heartbeat
-                      HD_STANDARD: 5 pro Heartbeat
-
-   Aenderungen koennen sowohl positiv als auch negativ sein.
+   Das erste Argument gibt die Eigenschaften der Aenderung an, der zweite
+   ob ausschliesslich die Pruefung auf Anwendbarkeit erfolgen soll.
 
 
 BEMERKUNGEN
 ===========
 
-   Hierbei aber bitte beachten, dass Tanken/Entanken sowie Heilungen ggf. von
+   Hierbei bitte beachten, dass Tanken/Entanken sowie Heilungen ggf. von
    der (Heilungs-)Balance genehmigt werden muessen!
 
+   Historischer Code enthaelt u.U. auch eine einfache Angabe der
+   betroffenen Properties als Argument enthalten. Dies in neuem Code
+   nicht mehr machen, dort ein Mapping wie oben beschrieben nutzen.
+
+   H_ALLOWED_CONDITIONS und H_ALLOWED_EFFECTS sind in /sys/living/life.h
+   definiert.
+
 
 BEISPIELE
 =========
 
    Heilung um 100 KP, 50 LP, aber nur wenn 30 P_FOOD gegessen werden kann:
 
-   consume( ([H_EFFECTS: ([P_HP:50, P_SP:100]),
+   consume( ([H_EFFECTS:    ([P_HP:50, P_SP:100]),
               H_CONDITIONS: ([P_FOOD:30]) ]) );
 
    Heilung um 100 KP und Vergiftung um 2, wenn 15 Alkohol getrunken werden
    koennen. Die SP werden zeitverzoegert mit 10 pro Heartbeat zugefuehrt.
 
-   consume(([H_EFFECTS: ([P_SP: 100, P_POISON: 2]),
-             H_CONDITIONS: ([P_ALCOHOL: 15]),
-             H_DISTRIBUTION: 10]) )
+   consume( ([H_EFFECTS:      ([P_SP: 100, P_POISON: 2]),
+              H_CONDITIONS:   ([P_ALCOHOL: 15]),
+              H_DISTRIBUTION: 10]) );
 
 
 SIEHE AUCH
diff --git a/doc/props/P_PEACE_HISTORY b/doc/props/P_PEACE_HISTORY
index eab38d5..40cb88f 100644
--- a/doc/props/P_PEACE_HISTORY
+++ b/doc/props/P_PEACE_HISTORY
@@ -55,7 +55,7 @@
 SIEHE AUCH
 ==========
 
-   P_PEACE_ACCEPT
+   P_ACCEPT_PEACE
    QueryPacify()
    /std/living/combat.c
 
diff --git a/doc/sphinx/lfun/AddSpell.rst b/doc/sphinx/lfun/AddSpell.rst
index 4a8041e..71841e5 100644
--- a/doc/sphinx/lfun/AddSpell.rst
+++ b/doc/sphinx/lfun/AddSpell.rst
@@ -5,7 +5,7 @@
 --------
 
   varargs int AddSpell(int rate, int damage,
-    string|<int|spell>* TextForEnemy, string|<int|string>* TextForOthers,
+    string|<int|string>* TextForEnemy, string|<int|string>* TextForOthers,
     string|string* dam_type, string|closure func, int|mapping spellarg)
 
 DEFINIERT IN
@@ -22,13 +22,13 @@
   damage        - Der Schadenswert fuer Defend(),
                   muss > 0 sein
 
-  TextForEnemy  - Text, den der Feind erhalten soll
+  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
+  TextForOthers - Text, den andere im Raum erhalten sollen.
+                  String <text> ode
                   Array der Form ({<text>,<messagetype>})
                   (Siehe ReceiveMsg())
 
@@ -37,12 +37,13 @@
                   fuer physikalische Angriffe)
 
   func          - Funktionsname oder Closure, die nach Anwendung
-                  aufgerufen werden soll
+                  aufgerufen werden soll.
                   (Optional, bekommt als Argumente object enemy, 
                   int real_damage, string* dam_type)
 
   sinfo         - Skillinfomapping, muss SI_SPELL mit den SP_* fuer
-                  den Aufruf von Defend() enthalten
+                  den Aufruf von Defend() enthalten.
+                  Hierfuer muss <newskills.h> includiert werden.
                   Default ist ([SI_SPELL: ([SP_PHYSICAL_ATTACK: 0]),
                   SI_MAGIC_TYPE: ({ MT_ANGRIFF }) ])
 
diff --git a/doc/sphinx/lfun/consume.rst b/doc/sphinx/lfun/consume.rst
index 25ab213..35dc402 100644
--- a/doc/sphinx/lfun/consume.rst
+++ b/doc/sphinx/lfun/consume.rst
@@ -22,11 +22,23 @@
 ::
 
     cinfo
-        Mapping mit Informationen ueber die Gesundheitsaenderung
-        Heilung.
+      Mapping mit Informationen ueber die Gesundheitsaenderung. Folgende
+      Schluessel koennen verwendet werden:
+      H_EFFECTS - Mapping der zu aendernden Properties mit dem Umfang der
+                  Aenderung, erlaubte Properties siehe H_ALLOWED_EFFECTS
+                  (P_HP, P_SP, P_POISON).
+      H_CONDITIONS - Mapping der zu pruefenden Properties mit dem Umfang der
+                     Aenderung, erlaubte Properties siehe 
+                     H_ALLOWED_CONDITIONS (P_FOOD, P_DRINK, P_ALCOHOL)
+      H_DISTRIBUTION - Verteilung der Aenderung fuer P_HP, P_SP
+                       HD_INSTANT:  sofortige Heilung
+                       HD_STANDARD: 5 pro Heartbeat
+                       1 - 50:      angebene Zahl pro Heartbeat
+      Aenderungen koennen sowohl positiv als auch negativ sein.
+    
     testonly
-        Gibt an, ob nur die Bedingungen abgetestet werden sollen,
-        oder auch die Wirkung eintreten soll.
+      Gibt an, ob nur die Bedingungen abgetestet werden sollen, oder 
+      auch die Wirkung eintreten soll. 
 
 RUECKGABEWERT
 -------------
@@ -34,11 +46,16 @@
 
     1 erfolgreich konsumiert
     0 keine oder falsche Aenderungsdaten in cinfo (nicht benutzbar)
-   <0 Bedingung fuer konsumieren nicht erfuellt, Bitset aus:
+   <0 Bedingung fuer konsumieren nicht erfuellt.
+      Der Rueckgabewert ist dann ein Bitset aus:
       HC_MAX_FOOD_REACHED    - Kann nichts mehr essen
       HC_MAX_DRINK_REACHED   - Kann nichts mehr trinken
       HC_MAX_ALCOHOL_REACHED - Kann nichts mehr saufen
-      HC_HOOK_CANCELLETION   - durch H_HOOK_CONSUME abgebrochen
+      HC_HOOK_CANCELLATION   - durch H_HOOK_CONSUME abgebrochen
+    
+    Hinweis: Wenn eine der Bedingungen nicht erfuellt ist, wird gar keine
+    Heilung ausgefuehrt, aber es sind stets alle Fehlercodes im
+    Rueckgabewert eingetragen.
 
 BESCHREIBUNG
 ------------
@@ -50,49 +67,38 @@
     erledigen. Sie vereint in sich die Pruefung auf Durchfuerbarkeit der
     Aenderung und Anwendung der Aenderung.
 
-    Der erste Parameter gibt die Eigenschaften der Aenderung an, der zweite ob
-    ausschliesslich die Pruefung auf Anwendbarkeit erfolgen soll.
-
-    Das Mapping cinfo hat folgende Struktur:
-    a) Einfache Angabe der betroffenen Properties. In neuem Code bitte nicht
-       machen, dort ein Mapping wie unter b) beschrieben nutzen!
-
-    b) Strukturiert in Effekte und Bedingungen mit folgenden Schluesseln:
-      H_EFFECTS - Mapping der zu aendernden Properties mit dem Umfang der
-                  Aenderung, erlaubte Properties siehe H_ALLOWED_EFFECTS
-
-      H_CONDITIONS - Mapping der zu pruefenden Properties mit dem Umfang der
-                     Aenderung, erlaubte Properties siehe H_ALLOWED_CONDITIONS
-
-      H_DISTRIBUTION - Verteilung der Aenderung fuer P_SP, P_HP
-                       HD_INSTANT bzw. 0: instante Heilung
-                       1 - 50: angebene Zahl pro Heartbeat
-                       HD_STANDARD: 5 pro Heartbeat
-
-    Aenderungen koennen sowohl positiv als auch negativ sein.
+    Das erste Argument gibt die Eigenschaften der Aenderung an, der zweite 
+    ob ausschliesslich die Pruefung auf Anwendbarkeit erfolgen soll.
 
 BEMERKUNGEN
 -----------
 ::
 
-    Hierbei aber bitte beachten, dass Tanken/Entanken sowie Heilungen ggf. von
+    Hierbei bitte beachten, dass Tanken/Entanken sowie Heilungen ggf. von
     der (Heilungs-)Balance genehmigt werden muessen!
 
+    Historischer Code enthaelt u.U. auch eine einfache Angabe der
+    betroffenen Properties als Argument enthalten. Dies in neuem Code
+    nicht mehr machen, dort ein Mapping wie oben beschrieben nutzen.
+
+    H_ALLOWED_CONDITIONS und H_ALLOWED_EFFECTS sind in /sys/living/life.h
+    definiert.
+
 BEISPIELE
 ---------
 ::
 
     Heilung um 100 KP, 50 LP, aber nur wenn 30 P_FOOD gegessen werden kann:
 
-    consume( ([H_EFFECTS: ([P_HP:50, P_SP:100]),
+    consume( ([H_EFFECTS:    ([P_HP:50, P_SP:100]),
                H_CONDITIONS: ([P_FOOD:30]) ]) );
 
     Heilung um 100 KP und Vergiftung um 2, wenn 15 Alkohol getrunken werden
     koennen. Die SP werden zeitverzoegert mit 10 pro Heartbeat zugefuehrt.
 
-    consume(([H_EFFECTS: ([P_SP: 100, P_POISON: 2]),
-              H_CONDITIONS: ([P_ALCOHOL: 15]),
-              H_DISTRIBUTION: 10]) )
+    consume( ([H_EFFECTS:      ([P_SP: 100, P_POISON: 2]),
+               H_CONDITIONS:   ([P_ALCOHOL: 15]),
+               H_DISTRIBUTION: 10]) );
 
 SIEHE AUCH
 ----------
diff --git a/doc/sphinx/props/P_PEACE_HISTORY.rst b/doc/sphinx/props/P_PEACE_HISTORY.rst
index e4e36a5..382498d 100644
--- a/doc/sphinx/props/P_PEACE_HISTORY.rst
+++ b/doc/sphinx/props/P_PEACE_HISTORY.rst
@@ -54,7 +54,7 @@
 ----------
 ::
 
-     P_PEACE_ACCEPT
+     P_ACCEPT_PEACE
      QueryPacify()
      /std/living/combat.c
 
diff --git a/doc/wiz/regionsleitfaden b/doc/wiz/regionsleitfaden
index f3398b4..70e491a 100644
--- a/doc/wiz/regionsleitfaden
+++ b/doc/wiz/regionsleitfaden
@@ -198,5 +198,14 @@
    beim zustaendigen Masterobjekt angemeldet, sobald sie das erste Mal
    repariert werden.
 
+o  Folgende weitere Dinge koennen eingebaut werden, falls Du das moechtest:
+   - Pokale von Halef in der Fraternitas (zustaendig: RM Ebene, EMs)
+   - Tuerchen fuer den Adventskalender (zustaendig: EMs)
+   - Eintrag im Metzeladventskalender (zustaendig: RM Ebene, EMs)
+   - Ostereiversteck fuer das Oster-Event (zustaendig: EMs)
+   - Eintrag im Metzelorakel (zustaendig: RM Ebene, EMs)
+   - Trophaeen von schwer zu besiegenden Gegner fuer den Trophaeenstab von
+     Paracelsus (zustaendig: RM Wald, EMs)
+
 Und nun viel Spass bei der Programmierung! 
 
diff --git a/doc/wiz/seil b/doc/wiz/seil
index d32e5f9..400e4c8 100644
--- a/doc/wiz/seil
+++ b/doc/wiz/seil
@@ -1,52 +1,53 @@
-Dokumentation fuer das Std-Seil: /obj/seil.c
+Dokumentation fuer das Std-Seil: /items/seil.c
 
 Abhaengigkeiten: /sys/thing/seil.h
 
 Das Standard-Seil ermoeglichst das Festbinden und Loesen eines Seiles an
-Objecten und Raeumen. Es kann im ganzen Morgengrauen verwendet werden.
+Objekten und Raeumen. Es kann im ganzen Morgengrauen verwendet werden.
 
-in den Objecten, die festgebunden werden, wird die Propertie P_TIED gesetzt.
+In den Objekten, die festgebunden werden, wird die Property P_TIED gesetzt.
 Sie enthaelt ein Mappng der Form:
 
 ([
 
- objectid: ([ "player" : playerid, "time" : timestamp ])
+ objektid: ([ "player" : playerid, "time" : timestamp ])
 
 ])
 
-Wenn ein Object festgebunden wird, so wird die Funktion tie() in dem Object
-aufgerufen. Die Funktion muss in dem Object vorhanden sein. Liefert die
+Wenn ein Objekt festgebunden wird, so wird die Funktion tie() in dem Objekt
+aufgerufen. Die Funktion muss in dem Objekt vorhanden sein. Liefert die
 Funktion 1 zurueck, darf man ein Seil daran binden.
 
-Aus der Funktion heraus kann im Seil in der Propertie P_TIE_USER ausgelesen
-werden, welche User die Aktion ausgeloest hat.
+Aus der Funktion heraus kann im Seil in der Property P_TIE_USER ausgelesen
+werden, welcher User die Aktion ausgeloest hat.
 (Diese Daten werden aus Kompatibilitaetsgruenden nicht an die Fkt. direkt
 uebergeben.)
 
-Wird ein Seil wieder losgebunden, so wird die Funktion 
+Wird ein Seil wieder losgebunden, so wird die Funktion
 untie()
-in dem Object aufgerufen. 
+in dem Objekt aufgerufen.
 
 Damit ein Seil in einem Raum festgebunden werden kann, muss der Raum eine
-id() bekommen - wie ein normales Object.
+id() bekommen - wie ein normales Objekt.
 
 In den Funktionen tie() und untie() kann jeweils ueberprueft werden, ob ein
 Spieler ein Seil benutzen darf oder nicht. Liefern die Funktionen 0 zurueck,
-so wird die Benutzung des Seiles verweigert.
+so wird die Benutzung des Seiles verweigert. Die Funktion tie() muss string
+oder int zurueckgeben.
 
-Die Funktion seil->query_tied_to_ob() liefert das Object zurueck, an welches
+Die Funktion seil->query_tied_to_ob() liefert das Objekt zurueck, an welches
 ein Seil gebunden ist oder 0;
 
 Bei der Benutzung eines Seiles im Raum wird zur Beschreibung die Funktion
 name() aufgerufen. Es kann also P_NAME gesetzt werden oder direkt name() im
 Raum ueberschrieben werden.
 
-Seile koennen ueber NPC's/Raeume und Zauber gesteuert werden:
+Seile koennen ueber NPCs, Raeume und Zauber gesteuert werden:
 
 varargs int binde_seil(string ziel, string msg)
 
-        Ziel beschreibt das Object oder Raum, wo es festgebunden werden soll
-        msg ist die Ausgabe. Wird msg nicht gesetzt, so wird eine 
+        Ziel beschreibt das Objekt oder Raum, wo es festgebunden werden soll
+        msg ist die Ausgabe. Wird msg nicht gesetzt, so wird eine
             Standard-Ausgabe ausgegeben.
 
 varargs int loese_seil(string msg)
@@ -55,14 +56,13 @@
         erzeugt.
 
 
-Beide Funktionen werden wir von enem Spieler behandelt - es werden tie() und
-untie() in den festgebundenen Objecten ausgewertet.
+Beide Funktionen werden wir von einem Spieler behandelt - es werden tie() und
+untie() in den festgebundenen Objekten ausgewertet.
 
-Eine weitere Propertie ist P_TIE_AUTO.
+Eine weitere Property ist P_TIE_AUTO.
 Dieser Wert steht per Default auf 1 und erlaubt damit eine automatische
 Benutzung des Seiles ueber die Funktionen binde_seil() und loese_seil().
-Ist diese Propertie auf 0, so koennen nur Spieler das Seil benutzen.
+Ist diese Property auf 0, so koennen nur Spieler das Seil benutzen.
 
 
-Letzte Aenderung: 25.6. Gando
-
+Letzte Aenderung: 2019-12-26, Arathorn
