blob: 7b458a595ff868d2285c28e67469eaadca9b818d [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001AddSpecialExit()
Zesstra953f9972017-02-18 15:37:36 +01002****************
MG Mud User88f12472016-06-24 23:31:02 +02003
MG Mud User88f12472016-06-24 23:31:02 +02004
Zesstra953f9972017-02-18 15:37:36 +01005FUNKTION
6========
MG Mud User88f12472016-06-24 23:31:02 +02007
Zesstra953f9972017-02-18 15:37:36 +01008 void AddSpecialExit(string|string* cmd, string|closure func);
MG Mud User88f12472016-06-24 23:31:02 +02009
MG Mud User88f12472016-06-24 23:31:02 +020010
Zesstra953f9972017-02-18 15:37:36 +010011DEFINIERT IN
12============
MG Mud User88f12472016-06-24 23:31:02 +020013
Zesstra953f9972017-02-18 15:37:36 +010014 /std/room/exits
MG Mud User88f12472016-06-24 23:31:02 +020015
MG Mud User88f12472016-06-24 23:31:02 +020016
Zesstra953f9972017-02-18 15:37:36 +010017ARGUMENTE
18=========
MG Mud User88f12472016-06-24 23:31:02 +020019
Zesstra953f9972017-02-18 15:37:36 +010020 string/string* cmd
21 die Richtung(en), in die der Ausgang fuehrt
22 string/closure func
23 der Name der aufzurufenden Funktion/Closure
24
25
26BESCHREIBUNG
27============
28
29 Es wird ein Ausgang in die Richtung(en) cmd eingefuegt. Wird der
30 Ausgang benutzt, so wird die Closure bzw. Funktion func ausgefuehrt.
31
32 AddSpecialExit(cmd, "func") entspricht:
33 - AddExit(keys, #'func)
34
35
36BEMERKUNGEN
37===========
38
39 In func muss man den Spieler selbst in den Zielraum bewegen. Im
40 Erfolgsfall sollte man einen Wert >0 zurueckgeben, im Fehlerfall einen
41 Wert <=0.
42
43 func bekommt als Parameter einen String mit der gewaehlten
44 Bewegungsrichtung uebergeben.
45
46
47BEISPIELE
48=========
49
50 // ein Ausgang soll nur von Froeschen benutzbar sein:
51
52 AddSpecialExit("loch", "lochfkt");
53 // der gleiche Aufruf, nur anders:
54 // static int lochfkt(string dir); // Prototyp
55 // ...
56 // AddSpecialExit("loch", #'lochfkt);
57 // auch identisch zu:
58 // AddExit("loch", #'lochfkt);
59
60 static int lochfkt(string dir) {
61 if (!(this_player()->QueryProp(P_FROG))) {
62 // Kein Frosch => passt nicht!
63 notify_fail("Du bist zu gross!\n");
64 return 0;
MG Mud User88f12472016-06-24 23:31:02 +020065 }
Zesstra953f9972017-02-18 15:37:36 +010066 // Meldungen werden im move() gleich mitgegeben
67 return this_player()->move("/room/loch", M_GO, 0,
68 "huepft ins Loch", "huepft herein");
69 }
MG Mud User88f12472016-06-24 23:31:02 +020070
Zesstra953f9972017-02-18 15:37:36 +010071
72SIEHE AUCH
73==========
74
75 AddExit(), GetExits(),
76 RemoveExit(), RemoveSpecialExit(),
77 GuardExit(),
78 H_HOOK_EXIT_USE, P_EXITS, P_HIDE_EXITS, /std/room/exits.c
79 ausgaenge
MG Mud User88f12472016-06-24 23:31:02 +020080
Bugfixd1dc3fd2016-12-22 17:02:10 +010081Letzte Aenderung: 22.12.2016, Bugfix