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/lfun/GuardExit b/doc/lfun/GuardExit
index 1cdf8cc..88da3c9 100644
--- a/doc/lfun/GuardExit
+++ b/doc/lfun/GuardExit
@@ -1,85 +1,111 @@
-FUNKTION:
- protected <int|<string|closure>* >* GuardExit(object room, int hookid,
- <string|closure>* hdata);
-DEFINIERT IN:
- /std/npc/moving.c
-
-ARGUMENTE:
- room
- Der den Hook ausloesende Raum (environment())
- hookid
- Die ID des Hooks (H_HOOK_EXIT_USE)
- hdata
- Ein Array mit 3 Elementen:
- ({
- verb - Das Kommandoverb/Ausgangsname (string)
- dest - Zielraum (string) oder closure (special exits)
- msg - Bewegungsrichtung (string) oder 0
- })
-
-BESCHREIBUNG:
- Ist diese Funktion in einem NPC definiert, traegt sich der NPC bei jeder
- Bewegung automatisch als Konsument von H_HOOK_EXIT_USE ein und diese
- Funktion wird immer gerufen, wenn ein Lebewesen im gleichen Environment
- wie der NPC versucht, einen Ausgang zu benutzen.
- Der NPC kann dann die Bewegung abbrechen (und so den Ausgang
- blockieren), Ziel oder Bewegungsmeldung aendern oder keine Veraenderung
- vornehmen.
- Die Konstanten fuer Hookid und Hookstatus (s. Rueckgabewert) sind in
- <hook.h> definiert.
-
-RUeCKGABEWERT:
- Array mit zwei Elementen:
- ({
- H_NO_MOD / H_ALTERED / H_CANCELLED,
- hdata
- })
- hdata ist ggf. das geaenderte Array, welches die Funktion uebergeben
- wird. Weitere Details s. auch /doc/std/hooks
-
-BEMERKUNGEN:
- Die Anzahl an Konsumenten eines Hooks ist begrenzt. Es ist daher
- moeglich, dass die Registrierung nicht klappt, wenn zuviele (>5) Waechter
- im Raum sind. Will man darauf reagieren, muesste man die Registrierung
- pruefen.
- Ein NPC, welcher GuardExit() definiert, aber im aktuellen Environment
- keine Wache halten will, koennte sich selber de-registrieren.
-
-BEISPIELE:
- <int|<string|closure>* >* GuardExit(object room, int hookid,
- <string|closure>* hdata)
- {
- // Nur in Gefaengnisraeumen Wache halten
- if (strstr(object_name(environment()), "/room/jail")==0)
- {
- // Hier gehts nicht raus. ;-)
- if (hdata[0] == "raus") {
- tell_object(this_player(), ...);
- return ({H_CANCELLED, hdata});
- }
- // Special exits ersetzen wir durch einen eigenen
- else if (closurep(hdata[1])) {
- hdata[1] = #'my_special_exit;
- return ({H_ALTERED, hdata});
- }
- // alle anderen Ausgaenge in die persoenliche Zelle
- else {
- tell_object(this_player(), ...);
- hdata[1] = "/room/jail_"+getuid(this_player());
- hdata[2] = "Sueden";
- return ({H_ALTERED, hdata});
- }
- }
- // in allen anderen Raeumen nicht eingreifen
- return ({H_NO_MOD, hdata});
- }
+GuardExit()
+***********
-SIEHE AUCH:
- AddExit, AddSpecialExit, RemoveExit
- HRegisterToHook, HRegisterModifier, HUnregisterFromHook
- /doc/std/hooks
-----------------------------------------------------------------------------
-20.02.2016, Zesstra
-22.05.2016, Mupfel (Beispiel korrigiert)
+FUNKTION
+========
+
+ protected <int|<string|closure>* >* GuardExit(object room, int hookid,
+ <string|closure>* hdata);
+
+
+DEFINIERT IN
+============
+
+ /std/npc/moving.c
+
+
+ARGUMENTE
+=========
+
+ room
+ Der den Hook ausloesende Raum (environment())
+ hookid
+ Die ID des Hooks (H_HOOK_EXIT_USE)
+ hdata
+ Ein Array mit 3 Elementen:
+ ({
+ verb - Das Kommandoverb/Ausgangsname (string)
+ dest - Zielraum (string) oder closure (special exits)
+ msg - Bewegungsrichtung (string) oder 0
+ })
+
+
+BESCHREIBUNG
+============
+
+ Ist diese Funktion in einem NPC definiert, traegt sich der NPC bei jeder
+ Bewegung automatisch als Konsument von H_HOOK_EXIT_USE ein und diese
+ Funktion wird immer gerufen, wenn ein Lebewesen im gleichen Environment
+ wie der NPC versucht, einen Ausgang zu benutzen.
+ Der NPC kann dann die Bewegung abbrechen (und so den Ausgang
+ blockieren), Ziel oder Bewegungsmeldung aendern oder keine Veraenderung
+ vornehmen.
+ Die Konstanten fuer Hookid und Hookstatus (s. Rueckgabewert) sind in
+ <hook.h> definiert.
+
+
+RUeCKGABEWERT
+=============
+
+ Array mit zwei Elementen:
+ ({
+ H_NO_MOD / H_ALTERED / H_CANCELLED,
+ hdata
+ })
+ hdata ist ggf. das geaenderte Array, welches die Funktion uebergeben
+ wird. Weitere Details s. auch /doc/std/hooks
+
+
+BEMERKUNGEN
+===========
+
+ Die Anzahl an Konsumenten eines Hooks ist begrenzt. Es ist daher
+ moeglich, dass die Registrierung nicht klappt, wenn zuviele (>5) Waechter
+ im Raum sind. Will man darauf reagieren, muesste man die Registrierung
+ pruefen.
+ Ein NPC, welcher GuardExit() definiert, aber im aktuellen Environment
+ keine Wache halten will, koennte sich selber de-registrieren.
+
+
+BEISPIELE
+=========
+
+ <int|<string|closure>* >* GuardExit(object room, int hookid,
+ <string|closure>* hdata)
+ {
+ // Nur in Gefaengnisraeumen Wache halten
+ if (strstr(object_name(environment()), "/room/jail")==0)
+ {
+ // Hier gehts nicht raus. ;-)
+ if (hdata[0] == "raus") {
+ tell_object(this_player(), ...);
+ return ({H_CANCELLED, hdata});
+ }
+ // Special exits ersetzen wir durch einen eigenen
+ else if (closurep(hdata[1])) {
+ hdata[1] = #'my_special_exit;
+ return ({H_ALTERED, hdata});
+ }
+ // alle anderen Ausgaenge in die persoenliche Zelle
+ else {
+ tell_object(this_player(), ...);
+ hdata[1] = "/room/jail_"+getuid(this_player());
+ hdata[2] = "Sueden";
+ return ({H_ALTERED, hdata});
+ }
+ }
+ // in allen anderen Raeumen nicht eingreifen
+ return ({H_NO_MOD, hdata});
+ }
+
+
+SIEHE AUCH
+==========
+
+ AddExit, AddSpecialExit, RemoveExit
+ HRegisterToHook, HRegisterModifier, HUnregisterFromHook
+ /doc/std/hooks
+
+20.02.2016, Zesstra 22.05.2016, Mupfel (Beispiel korrigiert)