Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame^] | 1 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 2 | AddSpecialExit() |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame^] | 3 | **************** |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 4 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 5 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame^] | 6 | FUNKTION |
| 7 | ======== |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 8 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame^] | 9 | void AddSpecialExit(string|string* cmd, string|closure func); |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 10 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 11 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame^] | 12 | DEFINIERT IN |
| 13 | ============ |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 14 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame^] | 15 | /std/room/exits |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 16 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 17 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame^] | 18 | ARGUMENTE |
| 19 | ========= |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 20 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame^] | 21 | string/string* cmd |
| 22 | die Richtung(en), in die der Ausgang fuehrt |
| 23 | string/closure func |
| 24 | der Name der aufzurufenden Funktion/Closure |
| 25 | |
| 26 | |
| 27 | BESCHREIBUNG |
| 28 | ============ |
| 29 | |
| 30 | Es wird ein Ausgang in die Richtung(en) cmd eingefuegt. Wird der |
| 31 | Ausgang benutzt, so wird die Closure bzw. Funktion func ausgefuehrt. |
| 32 | |
| 33 | AddSpecialExit(cmd, "func") entspricht: |
| 34 | - AddExit(keys, #'func) |
| 35 | |
| 36 | |
| 37 | BEMERKUNGEN |
| 38 | =========== |
| 39 | |
| 40 | In func muss man den Spieler selbst in den Zielraum bewegen. Im |
| 41 | Erfolgsfall sollte man einen Wert >0 zurueckgeben, im Fehlerfall einen |
| 42 | Wert <=0. |
| 43 | |
| 44 | func bekommt als Parameter einen String mit der gewaehlten |
| 45 | Bewegungsrichtung uebergeben. |
| 46 | |
| 47 | |
| 48 | BEISPIELE |
| 49 | ========= |
| 50 | |
| 51 | // ein Ausgang soll nur von Froeschen benutzbar sein: |
| 52 | |
| 53 | AddSpecialExit("loch", "lochfkt"); |
| 54 | // der gleiche Aufruf, nur anders: |
| 55 | // static int lochfkt(string dir); // Prototyp |
| 56 | // ... |
| 57 | // AddSpecialExit("loch", #'lochfkt); |
| 58 | // auch identisch zu: |
| 59 | // AddExit("loch", #'lochfkt); |
| 60 | |
| 61 | static int lochfkt(string dir) { |
| 62 | if (!(this_player()->QueryProp(P_FROG))) { |
| 63 | // Kein Frosch => passt nicht! |
| 64 | notify_fail("Du bist zu gross!\n"); |
| 65 | return 0; |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 66 | } |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame^] | 67 | // Meldungen werden im move() gleich mitgegeben |
| 68 | return this_player()->move("/room/loch", M_GO, 0, |
| 69 | "huepft ins Loch", "huepft herein"); |
| 70 | } |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 71 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame^] | 72 | |
| 73 | SIEHE AUCH |
| 74 | ========== |
| 75 | |
| 76 | AddExit(), GetExits(), |
| 77 | RemoveExit(), RemoveSpecialExit(), |
| 78 | GuardExit(), |
| 79 | H_HOOK_EXIT_USE, P_EXITS, P_HIDE_EXITS, /std/room/exits.c |
| 80 | ausgaenge |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 81 | |
Bugfix | d1dc3fd | 2016-12-22 17:02:10 +0100 | [diff] [blame] | 82 | Letzte Aenderung: 22.12.2016, Bugfix |