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
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