Manpages als reStructuredText erstellt

Unsere Manpages wurden mit einem LPC-Tool in
reStructuredText konvertiert und liegen jetzt
in diesem Verzeichnis als Quelldaten.
Aus diesen reStructuredText sollen dann per
Script die ASCII-Manpages und per Sphinx HTML u.a.
erzeugt werden.

Change-Id: I75d659a7b3f9863aecb11dbeb0037e6cae227c36
diff --git a/doc/sphinx/lfun/QuerySkillAttributeModifier.rst b/doc/sphinx/lfun/QuerySkillAttributeModifier.rst
new file mode 100644
index 0000000..34615c3
--- /dev/null
+++ b/doc/sphinx/lfun/QuerySkillAttributeModifier.rst
@@ -0,0 +1,118 @@
+QuerySkillAttributeModifier()
+=============================
+
+FUNKTION
+--------
+::
+
+    public varargs mapping QuerySkillAttributeModifier(object caster, 
+                                                    string *atrnames)
+
+DEFINIERT IN
+------------
+::
+
+    /std/living/skill_attributes.c
+
+ARGUMENTE
+---------
+::
+
+    <caster>    object
+                Objekt, welches die gesuchten Mods gesetzt hat
+
+    <atrnames>  string*
+                Array von Skill-Attributen, welche durchsucht werden sollen.
+
+BESCHREIBUNG
+------------
+::
+
+    Diese Funktion liefert alle Mods von <caster> auf den Skill-
+    Attributen <atrnames> in einem Mapping zurueck.
+    Wird <atrnames> nicht angegeben oder ist ein leeres Array, werden alle
+    Skill-Attribute nach Mods abgesucht.
+    Wird <caster> nicht angeben oder ist 0, so werden alle Mods der 
+    gewuenschten Skill-Attribute geliefert.
+    Dementsprechend bekommt man alle Mods aller Skill-Attribute, wenn keins
+    von beidem angegeben wird.
+
+RUECKGABEWERT
+-------------
+::
+
+    ([]), falls keine Modifikatoren gefunden wurden.
+    In anderen Faellen ist die Datenstruktur des Mappings wie folgt:
+    ([ atrname1: ([ <caster>: <value>; <duration> ]),
+       atrname2: ([ <caster>: <value>; <duration> ]) ])
+    Die Schluessel im Mapping sind die jeweiligen Skill-Attribute, die Werte
+    des Mappings sind erneut Mappings, welche als Schluessel die Objekte
+    haben, welche die Mods gesetzt haben. In diesem Mapping gehoeren zu jedem
+    Schluessel zwei Werte, den Wert des Modifikators und die Ablaufzeit.
+    <value> kann hierbei ein int oder eine closure sein, <duration> ist ein
+    int, <caster> ist ein Objekt.
+    Ggf. kann das innere Mapping natuerlich auch mehrere Modifikatoren
+    enthalten (also caster1, caster2, usw.).
+
+BEMERKUNGEN
+-----------
+::
+
+BEISPIELE
+---------
+::
+
+     Ein Objekt moechte seinen bestehenden Modifikator um 20 und die
+     Gueltigkeit um 13 erhoehen.
+     mapping res = ob->QuerySkillAttributeModifier(this_object(),
+                                                  ({SA_DAMAGE}) );
+     if (member(res, SA_DAMAGE) && member(res[SA_DAMAGE], this_object())) {
+          // alten Mod ueberschreiben und Werte dabei anheben.
+          ob->ModifySkillAttributeModifier(SA_DAMAGE,
+              res[SA_DAMAGE][this_object(),0] + 20,
+              res[SA_DAMAGE][this_object(),1] + 13 );
+     }
+     else
+          // neuen Mod setzen.
+          ob->ModifySkilAttributeModifier(SA_DAMAGE, 20, 13);
+
+      
+
+     Ein Objekt hat den Fluch der unpraezisen Schnelligkeit, welcher SA_DAMAGE
+     reduziert, sofern das Lebewesen einen positiven Modifikator auf SA_SPEED
+     hat:
+     mapping res = ob->QuerySkillAttributeModifier(0, ({SA_SPEED}) );
+     if (member(res, SA_SPEED) {
+         int val, int dur;
+         foreach(object caster, int v, int d: res[SA_SPEED]) {
+             // groessten Mod rausfinden, dabei keine closures
+             // beruecksichtigen.
+             if (intp(v) && v>val) {
+                 val=v;
+                 dur=d;
+             }
+         }
+         if (val > 0) {
+             // pos. Mod auf SA_SPEED gefunden, entsprechenden neg. Mod auf
+             // SA_DAMAGE setzen, der zum gleichen Zeitpunkt ungueltig wird
+             // wie der Mod auf SA_SPEED.
+             if (ob->ModifySkillAttribute(SA_DAMAGE, -val, dur) == SA_MOD_OK)
+                tell_object(ob, "tolle Fluchmeldung.");
+         }
+     }
+
+SIEHE AUCH
+----------
+::
+
+    Skills Lernen:  LearnSkill, ModifySkill, LimitAbility
+    * Nutzung:      UseSpell, UseSkill
+    * Abfragen:     QuerySkill, QuerySkillAbility
+    * Modifikation: ModifySkillAttribute, QuerySkillAttribute,
+                    RemoveSkillAttributeModifier
+      * Properties: P_SKILL_ATTRIBUTES, P_SKILL_ATTRIBUTE_OFFSETS
+    * sonstig:      spruchermuedung, skill_info_liste
+    * Properties:   P_NEWSKILLS
+
+14.08.2008, Zesstra
+