Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 1 | AddSpecialExit() |
| 2 | ================ |
| 3 | |
| 4 | FUNKTION |
| 5 | -------- |
| 6 | :: |
| 7 | |
| 8 | void AddSpecialExit(string|string* cmd, string|closure func); |
| 9 | |
| 10 | DEFINIERT IN |
| 11 | ------------ |
| 12 | :: |
| 13 | |
| 14 | /std/room/exits |
| 15 | |
| 16 | ARGUMENTE |
| 17 | --------- |
| 18 | :: |
| 19 | |
| 20 | 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 | BESCHREIBUNG |
| 26 | ------------ |
| 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 | BEMERKUNGEN |
| 36 | ----------- |
| 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 | BEISPIELE |
| 47 | --------- |
| 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; |
| 65 | } |
| 66 | // Meldungen werden im move() gleich mitgegeben |
| 67 | return this_player()->move("/room/loch", M_GO, 0, |
| 68 | "huepft ins Loch", "huepft herein"); |
| 69 | } |
| 70 | |
| 71 | SIEHE AUCH |
| 72 | ---------- |
| 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 |
| 80 | |
| 81 | Letzte Aenderung: 22.12.2016, Bugfix |
| 82 | |