Dokumentations-Update

Change-Id: Ic0c93ff3aadb8754fb4e98533d053bd7e28045d6
diff --git a/doc/lfun/AddExtraLook b/doc/lfun/AddExtraLook
index 1fc29c2..1658030 100644
--- a/doc/lfun/AddExtraLook
+++ b/doc/lfun/AddExtraLook
@@ -30,7 +30,8 @@
 
       * > 0: Dauer der Gueltigkeit des Extralooks in Sekunden.
 
-      * 0:   Unbegrenzt gueltiger Eintrag. Rebootfest.
+      * 0:   Unbegrenzt gueltiger Eintrag. Rebootfest. (Kann nur von
+        Blueprints registriert werden.)
 
       * < 0: Bis Ende/Reboot bestehender Eintrag.
 
@@ -81,92 +82,75 @@
      wenn der Extralook der Lebewesen das erste Mal nach Ablauf der
      Gueltigkeit aufgerufen wird.
 
-   * Das uebergbene Objekt sollte fuer permanente Eintraege eine
-     Blueprint sein, da Clones irgendwann (spaetestens mit Reboot)
-     zerstoert werden und der Eintrag dann bei Abfrage automatisch
-     geloescht wird.
+   * Im Fall von permanenten Eintraegen muss das uebergbene Objekt
+     eine Blueprint sein, da Clones irgendwann (spaetestens mit
+     Reboot) zerstoert werden und der Eintrag dann bei Abfrage
+     automatisch geloescht wird.
 
    * Folgerung: Clone-Objekte koennen fuer selbst beschraenkt
      temporaere Extralooks benutzt werden.
 
+   * Die Endemeldung wird nicht genau mit Ablauf der angegebenen
+     Zeit ausgegeben, sondern beim ersten Abruf der Langbeschreibung
+     *nach* Ablauf der Zeit.
+
 
 RUECKGABEWERTE
 ==============
 
    Siehe auch /sys/living/description.h fuer Konstanten.
 
-   * 1, falls der Eintrag erfolgreich registriert wurde.
+   * XL_OK: falls der Eintrag erfolgreich registriert wurde.
 
-   * < 0 sonst.
+   * ansonsten:
 
-     * -1: <key> war nicht gueltig und es konnte keiner ermittelt
-       werden.
+     * XL_NOKEY: <key> war nicht gueltig und es konnte keiner
+       ermittelt werden.
 
-     * -2: <look> war kein gueltiger String.
+     * XL_INVALIDEXTRALOOK: <look> war kein gueltiger String.
 
-     * -3: <duration> war kein Integer.
+     * XL_KEYDOESNOTEXIST: <duration> war kein Integer.
 
-     * -4: unter <key> gibt es schon einen Eintrag.
+     * XL_KEYEXISTS: unter <key> gibt es schon einen Eintrag.
 
 
 BEISPIELE
 =========
 
    // (1) einfacher Eintrag, "fuer die Ewigkeit"
+
    living->AddExtraLook("@WER1 hat den Drachengott der SSP besiegt.");
 
    // (2) Eintrag der nach 1h automatisch weg ist.
+
    living->AddExtraLook("@WER1 ist ganz mit Marmelade bedeckt.", 3600);
 
-   // (3) Eintrag mit bestimmten Schluessel, damit man ihn wieder entfernen kann
+   // (3) Eintrag mit bestimmtem Schluessel, damit man ihn wieder entfernen
+   // kann.
+
    living->AddExtraLook("@WER1 ist ganz mit Marmelade bedeckt.", 3600,
                         "humni_marmeladen_look");
 
-   // (4) Mit "Ende"-Meldung, aber kein eigener Schluessel
+   // (4) Mit "Ende"-Meldung, aber kein eigener Schluessel.
+
    living->AddExtraLook("@WER1 ist patschnass.", 1200, 0,
                         "Du bist endlich wieder trocken. Puuh.");
 
-   // (5) Mit Objekt, welches den Extralook dynamisch erzeugt
+   // (5) Mit Objekt, welches den Extralook dynamisch erzeugt.
+
    living->AddExtraLook("get_my_special_extralook", 3600, 0, 0,
                         this_object());
+
    // In diesem Fall muss this_object() natuerlich die Funktion
-   // "get_my_special_extralook()" definieren, die einen String zurueckgibt
+   // "get_my_special_extralook()" definieren, die einen String zurueckgibt.
 
    // (6) Mit Objekt, welches den Extralook dynamisch erzeugt
    // Hier wird explizit die Blueprint uebergeben, der Extralook ist also
    // rebootfest.
+
    living->AddExtraLook("get_my_special_extralook", 3600, 0,
                         "extralookende", blueprint(this_object()));
 
-   // Mit Objekt, was den Extralook und die Endemeldung dynamisch erzeugt
-   // und keine festgelegte Existenzdauer hat, sondern sich aufgrund
-   // eigener Konditionen entsorgt
-   void set_extra_look(object living) {
-     object dyntemplook = clone_object("/path/to/some/object");
-     if(living->AddExtraLook("get_my_special_extralook", 0,
-                             object_name(dyntemplook),
-                             0, dyntemplook) == XL_OK)
-       dyntemplook->SetProp(P_INTERNAL_EXTRA_LOOK, living);
-     else
-       dyntemplook->remove();
-   }
-
-   // entsprechendes Objekt:
-   varargs int remove(int silent) {
-     object ob = QueryProp(P_INTERNAL_EXTRA_LOOK);
-     // wenn der Spieler da ist, entfernen wir den Look regulaer
-     if(objectp(ob))
-       ob->RemoveExtraLook(object_name(this_object()));
-     return ::remove(silent);
-   }
-
-   void reset() {
-     if(!random(10))
-       remove();
-     else
-       ::reset();
-   }
-
 
 SIEHE AUCH
 ==========
@@ -180,4 +164,4 @@
    Fuer Spielerobjekte:
       P_EXTRA_LOOK
 
-5. Juni 2017 Gloinson
+Letzte Aenderung: 2021-01-21, Arathorn
diff --git a/doc/lfun/create_default_npc b/doc/lfun/create_default_npc
index fac3fe2..1fae71a 100644
--- a/doc/lfun/create_default_npc
+++ b/doc/lfun/create_default_npc
@@ -52,6 +52,10 @@
    P_HP und P_SP werden auf dieselben Werte wie P_MAX_HP bzw. P_MAX_SP
    eingestellt.
 
+   Die Attribute werden ueber SetAttr() gesetzt und damit auf 20 limitiert.
+   Sollen hoehere Attribute als 20 gesetzt werden, ist im Anschluss an
+   den Aufruf von create_default_npc() P_ATTRIBUTES direkt zu setzen.
+
 
 BEISPIEL
 ========
@@ -73,7 +77,7 @@
 
    Funktionen:  AddExp(), GiveKillScore()
    Properties:  P_XP
-                P_LEVEL, P_MAX_HP, P_MAX_SP, P_HANDS, P_BODY
+                P_LEVEL, P_MAX_HP, P_MAX_SP, P_HANDS, P_BODY, P_ATTRIBUTES
    Sonstiges:   npcs
 
 14.Feb 2007 Gloinson
diff --git a/doc/props/P_LEVEL b/doc/props/P_LEVEL
index a4b804c..709576d 100644
--- a/doc/props/P_LEVEL
+++ b/doc/props/P_LEVEL
@@ -18,7 +18,12 @@
 BESCHREIBUNG
 ============
 
-   Spieler-Level (!= Magierlevel)
+   Level des Lebewesens (bei Spielern: NICHT der Magierlevel)
+
+   Wenn man diese Property in NPCs setzt, werden alle Attribute auf
+   denselben Wert gesetzt, allerdings mittels SetAttr() und damit begrenzt
+   auf 20. Wer hoehere Attribute als 20 setzen will, muss P_ATTRIBUTES
+   direkt modifizieren.
 
    In Krankheits- (CL_DISEASE) und Giftobjekten (CL_POISON) drueckt
    P_LEVEL aus, wie schwer die Krankheit/das Gift ist. Je nachdem, wie
@@ -41,8 +46,9 @@
 SIEHE AUCH
 ==========
 
-   Properties:  P_GUILD_LEVEL
+   Properties:  P_GUILD_LEVEL, P_ATTRIBUTES
    Allgemeines: /doc/wiz/gift, /doc/help/gift
-   Funktionen:  AddClass(L), is_class_member(L)
+   Funktionen:  AddClass(L), is_class_member(L), create_default_npc(L),
+                SetAttr(L)
 
-Letzte Aenderung: 2015-Feb-02, Arathorn.
+Letzte Aenderung: 2021-Jan-23, Arathorn.
diff --git a/doc/props/P_LIGHT b/doc/props/P_LIGHT
index c1eb0e5..a9c317f 100644
--- a/doc/props/P_LIGHT
+++ b/doc/props/P_LIGHT
@@ -33,8 +33,10 @@
 
    Um ein ungefaehres Gefuehl davon zu bekommen, was ein Lichtlevel in
    etwa bedeutet, hier einige allgemeine Beispiele von Gegenstaenden.
-   Grundsaetzlich sollten Lichtlevel <0 und >2 nur in Ruecksprache mit dem
-   Balanceteam benutzt werden.
+   Grundsaetzlich sind Objekte mit Lichtlevel <0 und >2
+   genehmigungspflichtig; zustaendig sind bei Raeumen der Regionsmagier,
+   bei Objekten die Objektbalance und bei Gildenfaehigkeiten die
+   Gildenbalance.
 
    Lichtlevel -1,  z.B. ein schwarzer Ring, von dem eine kleine dunkle Aura
                    ausgeht, die den Spieler umgibt.
@@ -79,3 +81,4 @@
 ==========
 
    P_TOTAL_LIGHT, P_INT_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()
+   P_LIGHT_ABSORPTION, P_LIGHT_TRANSPARENCY
diff --git a/doc/props/P_WEIGHT b/doc/props/P_WEIGHT
index 024ba11..1e426c8 100644
--- a/doc/props/P_WEIGHT
+++ b/doc/props/P_WEIGHT
@@ -18,13 +18,13 @@
 BESCHREIBUNG
 ============
 
-   * Objekte Das Gewicht eines Objetes in Gramm.
+   * Objekte: das Gewicht eines Objektes in Gramm
 
-   * Speisen Gewicht einer Portion der Speise.
+   * Speisen: Gewicht einer Portion der Speise
 
-   * Container Das Gewicht des Containers ohne Inhalt
+   * Container: das Gewicht des Containers ohne Inhalt
 
-   * Lebewesen Das Gewicht des Lebewesens ohne Inhalt
+   * Lebewesen: das Gewicht des Lebewesens ohne Inhalt
 
 
 BEMERKUNGEN
@@ -40,11 +40,22 @@
    Behaelters. Das Gewicht des Behaelters wird dabei aus
    P_EMPTY_PROPS[P_WEIGHT] gelesen.
 
+   Wichtig fuer Gegenstaende, die von Spielern mitgenommen werden
+   koennen: Gibt man das Gewicht eines solchen Gegenstandes
+   ausschliesslich per Querymethode auf P_WEIGHT zurueck, ergibt sich
+   eine Diskrepanz zwischen P_WEIGHT und P_TOTAL_WEIGHT, da letzerer
+   Wert nur beim Setzen von P_WEIGHT per SetProp() mit eingestellt
+   wird. Daher ist bei diesen Objekten darauf zu achten, dass
+   zusaetzlich eine Querymethode auf P_TOTAL_WEIGHT gesetzt wird, die
+   denselben Wert zurueckgibt.
+
 
 SIEHE AUCH
 ==========
 
-   P_TOTAL_WEIGHT P_EMPTY_PROPS, P_WEIGHT_PERCENT, P_WEIGHT_PER_UNIT,
+   Properties: P_TOTAL_WEIGHT, P_EMPTY_PROPS, P_WEIGHT_PERCENT,
+   P_WEIGHT_PER_UNIT
+
    zu Speisen: wiz/food
 
-Last modified: 25.07.2018 by Zesstra
+Last modified: 2021-01-22, Arathorn
diff --git a/doc/props/obsolete/P_EXTRA_LOOK b/doc/props/obsolete/P_EXTRA_LOOK
deleted file mode 100644
index 203fb8e..0000000
--- a/doc/props/obsolete/P_EXTRA_LOOK
+++ /dev/null
@@ -1,57 +0,0 @@
-
-P_EXTRA_LOOK
-************
-
-********************* VERALTETE PROPERTY
-****************************** * Diese Property ist veraltet. Bitte
-benutzt sie NICHT mehr, sondern  * * stattdessden AddExtraLook().
-* *******************************************************************
-****
-
-
-NAME
-====
-
-   P_EXTRA_LOOK                    "extralook"
-
-
-DEFINIERT IN
-============
-
-   /sys/living/description.h
-
-
-BESCHREIBUNG
-============
-
-   Diese Property enthaelt einen String. Sie wird entweder in Lebewesen
-   direkt oder in Objekten gesetzt wird, die im Besitz von Lebewesen
-   sein koennen.
-   Diese Strings erscheinen dann zusaetzlich in der Langbeschreibung
-   des Lebewesens bzw. des Besitzers (wenn das Objekt sich direkt im
-    Lebewesen befindet, jedoch nicht in einem Behaelter im Lebewesen).
-   Fuer den Zeilenumbruch muss man selbst sorgen.
-
-
-BEISPIEL
-========
-
-   Ein Spieler hat eine Pfeife im Mund. In dieser Pfeife setzt man z.B.
-   in der Funktion zum Pfeife Rauchen folgendes:
-     SetProp(P_EXTRA_LOOK,break_string(
-    this_player()->Name(WER)+" ist ganz umnebelt.",78);
-
-
-BEMERKUNG
-=========
-
-   BITTE NICHT MEHR BENUTZEN!
-
-
-SIEHE AUCH
-==========
-
-         long(), /std/living/description.c, /std/player/base.c
-   AddExtraLook(), RemoveExtraLook()
-
-13.05.2007, Zesstra
diff --git a/doc/sphinx/lfun/AddExtraLook.rst b/doc/sphinx/lfun/AddExtraLook.rst
index 4ceea01..7a6cc2e 100644
--- a/doc/sphinx/lfun/AddExtraLook.rst
+++ b/doc/sphinx/lfun/AddExtraLook.rst
@@ -21,7 +21,7 @@
     int duration:
 
       - > 0: Dauer der Gueltigkeit des Extralooks in Sekunden.
-      - 0:   Unbegrenzt gueltiger Eintrag. Rebootfest.
+      - 0:   Unbegrenzt gueltiger Eintrag. Rebootfest. (Kann nur von Blueprints registriert werden.)
       - < 0: Bis Ende/Reboot bestehender Eintrag.
 
     string key:
@@ -34,7 +34,7 @@
     string lookende:
 
       - String, der an das Lebewesen (nur bei Spielern) ausgegeben wird,
-	wenn der eingetragene Extralook abgelaufen ist.
+        wenn der eingetragene Extralook abgelaufen ist.
       - zu rufender Funktionsname, wenn 'ob' angegeben ist
 
     object ob:
@@ -66,23 +66,26 @@
     - Die Meldung von <lookende> bzw. der Funktionsaufruf erfolgt, wenn der
       Extralook der Lebewesen das erste Mal nach Ablauf der Gueltigkeit
       aufgerufen wird.
-    - Das uebergbene Objekt sollte fuer permanente Eintraege eine Blueprint
-      sein, da Clones irgendwann (spaetestens mit Reboot) zerstoert werden
-      und der Eintrag dann bei Abfrage automatisch geloescht wird.
+    - Im Fall von permanenten Eintraegen muss das uebergbene Objekt eine 
+      Blueprint sein, da Clones irgendwann (spaetestens mit Reboot) zerstoert
+      werden und der Eintrag dann bei Abfrage automatisch geloescht wird.
     - Folgerung: Clone-Objekte koennen fuer selbst beschraenkt temporaere
       Extralooks benutzt werden.
+    - Die Endemeldung wird nicht genau mit Ablauf der angegebenen Zeit
+      ausgegeben, sondern beim ersten Abruf der Langbeschreibung *nach*
+      Ablauf der Zeit.
 
 RUECKGABEWERTE
 --------------
     Siehe auch /sys/living/description.h fuer Konstanten.
 
-    - 1, falls der Eintrag erfolgreich registriert wurde.
-    - < 0 sonst.
+    - XL_OK: falls der Eintrag erfolgreich registriert wurde.
+    - ansonsten:
 
-      - -1: <key> war nicht gueltig und es konnte keiner ermittelt werden.
-      - -2: <look> war kein gueltiger String.
-      - -3: <duration> war kein Integer.
-      - -4: unter <key> gibt es schon einen Eintrag.
+      - XL_NOKEY: <key> war nicht gueltig und es konnte keiner ermittelt werden.
+      - XL_INVALIDEXTRALOOK: <look> war kein gueltiger String.
+      - XL_KEYDOESNOTEXIST: <duration> war kein Integer.
+      - XL_KEYEXISTS: unter <key> gibt es schon einen Eintrag.
 
 BEISPIELE
 ---------
@@ -90,71 +93,49 @@
 .. code-block:: pike
 
     // (1) einfacher Eintrag, "fuer die Ewigkeit"
+
     living->AddExtraLook("@WER1 hat den Drachengott der SSP besiegt.");
 
 .. code-block:: pike
 
     // (2) Eintrag der nach 1h automatisch weg ist.
+
     living->AddExtraLook("@WER1 ist ganz mit Marmelade bedeckt.", 3600);
 
 .. code-block:: pike
 
-    // (3) Eintrag mit bestimmten Schluessel, damit man ihn wieder entfernen kann
+    // (3) Eintrag mit bestimmtem Schluessel, damit man ihn wieder entfernen
+    // kann.
+
     living->AddExtraLook("@WER1 ist ganz mit Marmelade bedeckt.", 3600,
                          "humni_marmeladen_look");
 
 .. code-block:: pike
 
-    // (4) Mit "Ende"-Meldung, aber kein eigener Schluessel
+    // (4) Mit "Ende"-Meldung, aber kein eigener Schluessel.
+
     living->AddExtraLook("@WER1 ist patschnass.", 1200, 0,
                          "Du bist endlich wieder trocken. Puuh.");
 
 .. code-block:: pike
 
-    // (5) Mit Objekt, welches den Extralook dynamisch erzeugt
+    // (5) Mit Objekt, welches den Extralook dynamisch erzeugt.
+
     living->AddExtraLook("get_my_special_extralook", 3600, 0, 0,
                          this_object());
+
     // In diesem Fall muss this_object() natuerlich die Funktion
-    // "get_my_special_extralook()" definieren, die einen String zurueckgibt
+    // "get_my_special_extralook()" definieren, die einen String zurueckgibt.
 
 .. code-block:: pike
 
     // (6) Mit Objekt, welches den Extralook dynamisch erzeugt
     // Hier wird explizit die Blueprint uebergeben, der Extralook ist also
     // rebootfest.
+
     living->AddExtraLook("get_my_special_extralook", 3600, 0,
                          "extralookende", blueprint(this_object()));
 
-.. code-block:: pike
-
-    // Mit Objekt, was den Extralook und die Endemeldung dynamisch erzeugt
-    // und keine festgelegte Existenzdauer hat, sondern sich aufgrund
-    // eigener Konditionen entsorgt
-    void set_extra_look(object living) {
-      object dyntemplook = clone_object("/path/to/some/object");
-      if(living->AddExtraLook("get_my_special_extralook", 0,
-                              object_name(dyntemplook),
-                              0, dyntemplook) == XL_OK)
-        dyntemplook->SetProp(P_INTERNAL_EXTRA_LOOK, living);
-      else
-        dyntemplook->remove();
-    }
-
-    // entsprechendes Objekt:
-    varargs int remove(int silent) {
-      object ob = QueryProp(P_INTERNAL_EXTRA_LOOK);
-      // wenn der Spieler da ist, entfernen wir den Look regulaer
-      if(objectp(ob))
-        ob->RemoveExtraLook(object_name(this_object()));
-      return ::remove(silent);
-    }
-
-    void reset() {
-      if(!random(10))
-        remove();
-      else
-        ::reset();
-    }
 
 SIEHE AUCH
 ----------
@@ -166,4 +147,5 @@
    Fuer Spielerobjekte:
      :doc:`../props/P_EXTRA_LOOK`
 
-5. Juni 2017 Gloinson
+
+Letzte Aenderung: 2021-01-21, Arathorn
diff --git a/doc/sphinx/lfun/create_default_npc.rst b/doc/sphinx/lfun/create_default_npc.rst
index 999fee2..db20d16 100644
--- a/doc/sphinx/lfun/create_default_npc.rst
+++ b/doc/sphinx/lfun/create_default_npc.rst
@@ -51,6 +51,11 @@
      P_HP und P_SP werden auf dieselben Werte wie P_MAX_HP bzw. P_MAX_SP 
      eingestellt.
 
+     Die Attribute werden ueber SetAttr() gesetzt und damit auf 20 limitiert.
+     Sollen hoehere Attribute als 20 gesetzt werden, ist im Anschluss an
+     den Aufruf von create_default_npc() P_ATTRIBUTES direkt zu setzen.
+
+
 BEISPIEL
 --------
 ::
@@ -72,7 +77,7 @@
 
      Funktionen:  AddExp(), GiveKillScore()
      Properties:  P_XP
-                  P_LEVEL, P_MAX_HP, P_MAX_SP, P_HANDS, P_BODY
+                  P_LEVEL, P_MAX_HP, P_MAX_SP, P_HANDS, P_BODY, P_ATTRIBUTES
      Sonstiges:   npcs
 
 14.Feb 2007 Gloinson
diff --git a/doc/sphinx/props/P_LEVEL.rst b/doc/sphinx/props/P_LEVEL.rst
index 8cbe8f8..41158b4 100644
--- a/doc/sphinx/props/P_LEVEL.rst
+++ b/doc/sphinx/props/P_LEVEL.rst
@@ -17,7 +17,12 @@
 ------------
 ::
 
-     Spieler-Level (!= Magierlevel)
+     Level des Lebewesens (bei Spielern: NICHT der Magierlevel)
+
+     Wenn man diese Property in NPCs setzt, werden alle Attribute auf 
+     denselben Wert gesetzt, allerdings mittels SetAttr() und damit begrenzt
+     auf 20. Wer hoehere Attribute als 20 setzen will, muss P_ATTRIBUTES 
+     direkt modifizieren.
 
      In Krankheits- (CL_DISEASE) und Giftobjekten (CL_POISON) drueckt 
      P_LEVEL aus, wie schwer die Krankheit/das Gift ist. Je nachdem, wie 
@@ -40,9 +45,10 @@
 ----------
 ::
 
-     Properties:  P_GUILD_LEVEL
+     Properties:  P_GUILD_LEVEL, P_ATTRIBUTES
      Allgemeines: /doc/wiz/gift, /doc/help/gift
-     Funktionen:  AddClass(L), is_class_member(L)
+     Funktionen:  AddClass(L), is_class_member(L), create_default_npc(L), 
+                  SetAttr(L)
 
-Letzte Aenderung: 2015-Feb-02, Arathorn.
+Letzte Aenderung: 2021-Jan-23, Arathorn.
 
diff --git a/doc/sphinx/props/P_LIGHT.rst b/doc/sphinx/props/P_LIGHT.rst
index 1475b29..20cd78e 100644
--- a/doc/sphinx/props/P_LIGHT.rst
+++ b/doc/sphinx/props/P_LIGHT.rst
@@ -32,8 +32,10 @@
 
     Um ein ungefaehres Gefuehl davon zu bekommen, was ein Lichtlevel in
     etwa bedeutet, hier einige allgemeine Beispiele von Gegenstaenden.
-    Grundsaetzlich sollten Lichtlevel <0 und >2 nur in Ruecksprache mit dem
-    Balanceteam benutzt werden.
+    Grundsaetzlich sind Objekte mit Lichtlevel <0 und >2 
+    genehmigungspflichtig; zustaendig sind bei Raeumen der Regionsmagier,
+    bei Objekten die Objektbalance und bei Gildenfaehigkeiten die 
+    Gildenbalance.
 
     Lichtlevel -1,  z.B. ein schwarzer Ring, von dem eine kleine dunkle Aura
                     ausgeht, die den Spieler umgibt.
@@ -78,4 +80,5 @@
 ::
 
     P_TOTAL_LIGHT, P_INT_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()
+    P_LIGHT_ABSORPTION, P_LIGHT_TRANSPARENCY
 
diff --git a/doc/sphinx/props/P_WEIGHT.rst b/doc/sphinx/props/P_WEIGHT.rst
index 51d1da5..58dd014 100644
--- a/doc/sphinx/props/P_WEIGHT.rst
+++ b/doc/sphinx/props/P_WEIGHT.rst
@@ -14,14 +14,10 @@
 BESCHREIBUNG
 ------------
 
-  * Objekte
-    Das Gewicht eines Objetes in Gramm.
-  * Speisen
-    Gewicht einer Portion der Speise.
-  * Container
-    Das Gewicht des Containers ohne Inhalt
-  * Lebewesen
-    Das Gewicht des Lebewesens ohne Inhalt
+  - Objekte: das Gewicht eines Objektes in Gramm
+  - Speisen: Gewicht einer Portion der Speise
+  - Container: das Gewicht des Containers ohne Inhalt
+  - Lebewesen: das Gewicht des Lebewesens ohne Inhalt
 
 BEMERKUNGEN
 -----------
@@ -37,15 +33,21 @@
   Das Gewicht des Behaelters wird dabei aus P_EMPTY_PROPS[P_WEIGHT]
   gelesen.
 
+  Wichtig fuer Gegenstaende, die von Spielern mitgenommen werden koennen:
+  Gibt man das Gewicht eines solchen Gegenstandes ausschliesslich per
+  Querymethode auf P_WEIGHT zurueck, ergibt sich eine Diskrepanz zwischen
+  P_WEIGHT und P_TOTAL_WEIGHT, da letzerer Wert nur beim Setzen von P_WEIGHT
+  per SetProp() mit eingestellt wird. Daher ist bei diesen Objekten darauf
+  zu achten, dass zusaetzlich eine Querymethode auf P_TOTAL_WEIGHT gesetzt
+  wird, die denselben Wert zurueckgibt.
 
 SIEHE AUCH
 ----------
 
-  :doc:`../props/P_TOTAL_WEIGHT`
-  :doc:`../props/P_EMPTY_PROPS`, :doc:`../props/P_WEIGHT_PERCENT`,
-  :doc:`../props/P_WEIGHT_PER_UNIT`,
+  Properties: :doc:`../props/P_TOTAL_WEIGHT`, :doc:`../props/P_EMPTY_PROPS`, 
+  :doc:`../props/P_WEIGHT_PERCENT`, :doc:`../props/P_WEIGHT_PER_UNIT`
+  
   zu Speisen: wiz/food
 
-
-Last modified: 25.07.2018 by Zesstra
+Last modified: 2021-01-22, Arathorn
 
diff --git a/doc/wiz/.synonym b/doc/wiz/.synonym
index 6c9523f..e1c781c 100644
--- a/doc/wiz/.synonym
+++ b/doc/wiz/.synonym
@@ -1,6 +1,7 @@
 sponsor befoerderungen
 sponsoring befoerderungen
 befoerderung befoerderungen
+ebenen channels
 npc npcs
 materialien material
 flueche gift
diff --git a/doc/wiz/gerrit-account b/doc/wiz/gerrit-account
index 40d312c..95eb726 100644
--- a/doc/wiz/gerrit-account
+++ b/doc/wiz/gerrit-account
@@ -2,25 +2,39 @@
 ----------------------------------------
 
 1) Ihr habt einen Github- oder Google-Account
-Dann geht ihr auf https://mg.mud.de/gerrit/ und benutzt oben rechts
-"Sign-in".
-Anschliessend geht ihr oben rechts in die Einstellungen eures Accounts oder
-hierhin: https://mg.mud.de/gerrit/#/settings/
-Dort koennt ihr euren SSH-Key hinterlegen und einige andere Einstellungen
-vornehmen. Im Falle des Login via Google koennt ihr (glaube ich) auch euren
-Usernamen einmalig festlegen. In jedem Fall koennt ihr einen Anzeigenamen
-(Full Name) hinterlegen.
-Der als Username bezeichnete ist der, den ihr fuer git+ssh braucht.
-Nach Accounterstellung sagt ihr bitte einem EM oder allen euren RMs Bescheid,
-damit diese euch in die richtigen Gruppen aufnehmen. ;-)
+
+  Dann geht ihr auf https://mg.mud.de/gerrit/ und benutzt oben rechts
+  "Sign-in" und waehlt die Methode aus, ueber die ihr euch einloggen
+  wollt.
+
+  Anschliessend geht ihr oben rechts in die Einstellungen eures Accounts oder
+  hierhin: https://mg.mud.de/gerrit/#/settings/
+  
+  Dort koennt ihr euren SSH-Key hinterlegen und einige andere Einstellungen
+  vornehmen. 
+  
+  WICHTIG: Bitte stellt sicher, dass ihr nach dem ersten Login dort auf
+  jeden Fall einen "User name" eintragt, ansonsten ist euer Account defekt
+  und fuer die Admins funktioniert die Admin-Konsole nicht richtig.
+
+  Bitte legt auch einen "Full name" fest, am besten auf euren Magiernamen;
+  alternativ tragt den Magiernamen unter "Display name" ein, wenn ihr unter
+  "Full name" etwas anderes wie z.B. euren RL-Namen verwenden wollt.
+
+  Der als "User name" bezeichnete ist der, den ihr fuer git+ssh braucht.
+  
+  Nach Accounterstellung sagt ihr bitte einem EM oder allen euren RMs 
+  Bescheid, damit diese euch in die richtigen Gruppen aufnehmen. ;-)
 
 
 2) Ihr habt weder einen Github- noch einen Google-Account
    (und wollt euch keinen)
-In dem Fall braucht ihr einen gerrit-Admin (zur zeit ich oder Arathorn).
-Dieser kann einen Benutzer anlegen. In diesem Fall koennt ihr gerrit aber
-NICHT ueber die Weboberflaeche benutzen, nur via git + ssh. Auch muss dann
-der Gerrit-Admin euren SSH-Key eintragen.
+
+  In dem Fall braucht ihr einen gerrit-Admin (zur zeit Zesstra, Zook, 
+  Arathorn und Humni).
+  Dieser kann einen Benutzer anlegen. In diesem Fall koennt ihr gerrit aber
+  NICHT ueber die Weboberflaeche benutzen, nur via git + ssh. Auch muss dann
+  der Gerrit-Admin euren SSH-Key eintragen.
 
 
 Abschnitt fuer Erzmagier / Admins
@@ -31,14 +45,14 @@
      create-account --group "" --ssh-key - <magiername>
 
 2) Account in Gruppen aufnehmen (Web):
-  Auf https://anonymizer.zesstra.de:8443/#/admin/groups/
-  Gruppe auswaehlen und unter "Member" hinzufuegen.
+  Auf https://mg.mud.de/gerrit/admin/groups Gruppe auswaehlen und unter
+  "Members" den Account hinzufuegen.
   (Vorsicht: nicht ohne weiteres eine andere Gruppe dort aufnehmen!)
   
 3) Account per Kommandozeile in Gruppen aufnehmen:
-  gerrit set-members \
-      -a alice@example.com -a bob@example.com \
-        -r eve@example.com <group1> <group2> ...
+  ssh mgg gerrit set-members \
+            -a alice@example.com -a bob@example.com \
+            -r eve@example.com <group1> <group2> ...
 
 4) Magier bittet euch, in passende Gruppen aufgenommen zu werden:
   Die folgenden Gruppen sollte er bekommen:
diff --git a/doc/wiz/licht b/doc/wiz/licht
index d995a23..4c97861 100644
--- a/doc/wiz/licht
+++ b/doc/wiz/licht
@@ -24,11 +24,12 @@
 
 Hinweis: Alle Objekte mit Lichtlevel <0 und >2 sowie alle Objekte, die
          P_LIGHT_MODIFIER oder Closures setzen sind genehmigungspflichtig!
-         Dafuer sind die Regionsmagier zustaendig.
-
+         Bei Raeumen sind dafuer die Regionsmagier, bei Gilden die 
+         Gildenbalance und bei sonstigen Spielerobjekten die Objektbalance
+         zustaendig.
 
 SIEHE AUCH: P_LIGHT
 
 ------------------------------------------------------------------------------
  LETZTE AeNDERUNG:
-    2002-11-21, 17.30 von Zook
+    2021-01-20, 22:24 von Humni