Dokumentations-Update

Change-Id: Ic0c93ff3aadb8754fb4e98533d053bd7e28045d6
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