Automatisch erzeugte Manpages.
Damit nicht jeder sphinx auf dem Rechner haben muss,
behalten wir bis auf weiteres die aus den .rst
erzeugten Manpoages auch im Repo.
Change-Id: Id556c0d11cf5f79659d8350952ce1c014d81ea44
diff --git a/doc/props/P_AUTOLOADOBJ b/doc/props/P_AUTOLOADOBJ
index 32b433d..3184fff 100644
--- a/doc/props/P_AUTOLOADOBJ
+++ b/doc/props/P_AUTOLOADOBJ
@@ -1,119 +1,141 @@
-NAME:
- P_AUTOLOADOBJ "autoloadobj"
-DEFINIERT IN:
- /sys/player/base.h
-
-BESCHREIBUNG:
- Hiermit kann prinzipiell angegeben werden ob ein Objekt ueber das
- Ausloggen eines Spielers (Reboot/ende) behalten werden soll.
-
- Als Inhalt der Property koennen permanente Eigenschaften des Objektes
- angegeben werden.
- Beim Einloggen wird das Objekt neu erzeugt und P_AUTOLOADOBJ auf die
- gespeicherten Werte gesetzt. Die Werte muessen allerdings selbst
- verwaltet werden.
-
- Bitte geht nicht davon aus, dass es waehrend des Setzens/Abfragens dieser
- Prop einen this_player() oder ein this_interactive() geben muss.
- Speziell ist this_interactive() nicht == /secure/login!
- Ebenfalls muss das Objekt beim Setzen/Abfragen nicht in einem Spieler
- sein.
-
-BEMERKUNGEN:
- Autoloadobjekte werden beim Ausloggen nicht fallengelassen!
-
-BEISPIELE:
- ## Variante 1: simples Objekt, bleibt einfach nur erhalten,
- ## Variablen werden nicht gesichert ##
- void create() {
- ...
- SetProp(P_AUTOLOADOBJ,1);
- ...
- }
+P_AUTOLOADOBJ
+*************
- ## Variante 2: Speicherung mehrerer Variablen ueber
- ## P_AUTOLOADOBJ (elegante Verwaltung)
+NAME
+====
- // ein paar #defines fuer die Plaetze in der Speichervariablen
- #define MY_AL_SHORT 0
- #define MY_AL_ATTRM 1
- #define MY_AL_OWNER 2
- #define MY_AL_DESTRUCT 3
-
- // die Variablen, die erhalten bleiben sollen
- static object owner;
- static int destruct_time;
-
- // diese hier wird gerufen, wenn der Spieler gespeichert wird,
- // wir packen also alle aktuellen Variablen in eine und geben die
- // zum Speichern heraus ... wir nehmen hier ein Array (statt
- // zB eines Mappings), weil das am wenigsten Platz braucht
- static mixed* _query_autoloadobj() {
- mixed *ret;
- ret=allocate(4);
- ret[MY_AL_SHORT] = QueryProp(P_SHORT); // SHORT merken
- ret[MY_AL_ATTRM] = QueryProp(P_M_ATTR_MOD); // einen Modifikator merken
- ret[MY_AL_OWNER] = getuid(owner); // ah, ein Besitzer!
- ret[MY_AL_DESTRUCT]=destruct_time-time(); // und eine Lebensdauer!
-
- return ret;
-
- /*
- // normalerweise wuerde man das einfach so schreiben:
- return (({QueryProp(P_SHORT),
- QueryProp(P_M_ATTR_MOD),
- getuid(owner),
- destruct_time-time()}));
- */
- }
-
- // diese hier wird gerufen, wenn das Objekt neu im Spieler
- // erzeugt wurde (Login), also packen wir das Speicherarray wieder
- // aus und in alle entsprechenden Variablen
- static mixed* _set_autoloadobj(mixed *new) {
- // wenn das Format nicht mit dem oben uebereinstimmt ist was
- // schiefgelaufen
- if(pointerp(new) && !owner && sizeof(new)>4 &&
- (owner=find_player(new[MY_AL_OWNER]))) {
- // los, zuweisen!
-
- SetProp(P_SHORT, new[MY_AL_SHORT]);
- SetProp(P_M_ATTR_MOD, new[MY_AL_ATTRM]);
- destruct_time= time()+new[MY_AL_DESTRUCT];
-
- call_out(#'remove,new[3]);
- } else call_out(#'remove,0);
-
- return new;
- }
+ P_AUTOLOADOBJ "autoloadobj"
- ## Variante 3: und das gleiche mit Set/Querymethoden ##
- // Prototypen fuer Set und Query-Methoden -> man Set
- static mixed *my_query_autoloadobj();
- static mixed *my_set_autoloadobj(mixed *new);
+DEFINIERT IN
+============
- void create() {
- // Binden der Methoden
- Set(P_AUTOLOADOBJ, #'my_query_autoloadobj, F_QUERY_METHOD);
- Set(P_AUTOLOADOBJ, #'my_set_autoloadobj, F_SET_METHOD);
+ /sys/player/base.h
- // die werden nur von mir veraendert!
- Set(P_AUTOLOADOBJ, PROTECTED, F_MODE_AS);
- ...
- }
- static mixed *my_query_autoloadobj () {
- // s.o.
- }
+BESCHREIBUNG
+============
- static mixed *my_set_autoloadobj (mixed *new) {
- // s.o.
- }
+ Hiermit kann prinzipiell angegeben werden ob ein Objekt ueber das
+ Ausloggen eines Spielers (Reboot/ende) behalten werden soll.
-SIEHE AUCH:
- P_AUTOLOAD, SetProp
+ Als Inhalt der Property koennen permanente Eigenschaften des Objektes
+ angegeben werden.
+ Beim Einloggen wird das Objekt neu erzeugt und P_AUTOLOADOBJ auf die
+ gespeicherten Werte gesetzt. Die Werte muessen allerdings selbst
+ verwaltet werden.
+
+ Bitte geht nicht davon aus, dass es waehrend des Setzens/Abfragens dieser
+ Prop einen this_player() oder ein this_interactive() geben muss.
+ Speziell ist this_interactive() nicht == /secure/login!
+ Ebenfalls muss das Objekt beim Setzen/Abfragen nicht in einem Spieler
+ sein.
+
+
+BEMERKUNGEN
+===========
+
+ Autoloadobjekte werden beim Ausloggen nicht fallengelassen!
+
+
+BEISPIELE
+=========
+
+ ## Variante 1: simples Objekt, bleibt einfach nur erhalten,
+ ## Variablen werden nicht gesichert ##
+ void create() {
+ ...
+ SetProp(P_AUTOLOADOBJ,1);
+ ...
+ }
+
+
+ ## Variante 2: Speicherung mehrerer Variablen ueber
+ ## P_AUTOLOADOBJ (elegante Verwaltung)
+
+ // ein paar #defines fuer die Plaetze in der Speichervariablen
+ #define MY_AL_SHORT 0
+ #define MY_AL_ATTRM 1
+ #define MY_AL_OWNER 2
+ #define MY_AL_DESTRUCT 3
+
+ // die Variablen, die erhalten bleiben sollen
+ static object owner;
+ static int destruct_time;
+
+ // diese hier wird gerufen, wenn der Spieler gespeichert wird,
+ // wir packen also alle aktuellen Variablen in eine und geben die
+ // zum Speichern heraus ... wir nehmen hier ein Array (statt
+ // zB eines Mappings), weil das am wenigsten Platz braucht
+ static mixed* _query_autoloadobj() {
+ mixed *ret;
+ ret=allocate(4);
+ ret[MY_AL_SHORT] = QueryProp(P_SHORT); // SHORT merken
+ ret[MY_AL_ATTRM] = QueryProp(P_M_ATTR_MOD); // einen Modifikator merken
+ ret[MY_AL_OWNER] = getuid(owner); // ah, ein Besitzer!
+ ret[MY_AL_DESTRUCT]=destruct_time-time(); // und eine Lebensdauer!
+
+ return ret;
+
+ /*
+ // normalerweise wuerde man das einfach so schreiben:
+ return (({QueryProp(P_SHORT),
+ QueryProp(P_M_ATTR_MOD),
+ getuid(owner),
+ destruct_time-time()}));
+ */
+ }
+
+ // diese hier wird gerufen, wenn das Objekt neu im Spieler
+ // erzeugt wurde (Login), also packen wir das Speicherarray wieder
+ // aus und in alle entsprechenden Variablen
+ static mixed* _set_autoloadobj(mixed *new) {
+ // wenn das Format nicht mit dem oben uebereinstimmt ist was
+ // schiefgelaufen
+ if(pointerp(new) && !owner && sizeof(new)>4 &&
+ (owner=find_player(new[MY_AL_OWNER]))) {
+ // los, zuweisen!
+
+ SetProp(P_SHORT, new[MY_AL_SHORT]);
+ SetProp(P_M_ATTR_MOD, new[MY_AL_ATTRM]);
+ destruct_time= time()+new[MY_AL_DESTRUCT];
+
+ call_out(#'remove,new[3]);
+ } else call_out(#'remove,0);
+
+ return new;
+ }
+
+
+ ## Variante 3: und das gleiche mit Set/Querymethoden ##
+ // Prototypen fuer Set und Query-Methoden -> man Set
+ static mixed *my_query_autoloadobj();
+ static mixed *my_set_autoloadobj(mixed *new);
+
+ void create() {
+ // Binden der Methoden
+ Set(P_AUTOLOADOBJ, #'my_query_autoloadobj, F_QUERY_METHOD);
+ Set(P_AUTOLOADOBJ, #'my_set_autoloadobj, F_SET_METHOD);
+
+ // die werden nur von mir veraendert!
+ Set(P_AUTOLOADOBJ, PROTECTED, F_MODE_AS);
+ ...
+ }
+
+ static mixed *my_query_autoloadobj () {
+ // s.o.
+ }
+
+ static mixed *my_set_autoloadobj (mixed *new) {
+ // s.o.
+ }
+
+
+SIEHE AUCH
+==========
+
+ P_AUTOLOAD, SetProp
24.Aug.2006 Gloinson@MG