AddSpecialExit()

FUNKTION

void AddSpecialExit(string|string* cmd, string|closure func);

DEFINIERT IN

/std/room/exits

ARGUMENTE

string/string* cmd
     die Richtung(en), in die der Ausgang fuehrt
string/closure func
     der Name der aufzurufenden Funktion/Closure

BESCHREIBUNG

Es wird ein Ausgang in die Richtung(en) cmd eingefuegt. Wird der
Ausgang benutzt, so wird die Closure bzw. Funktion func ausgefuehrt.

AddSpecialExit(cmd, "func") entspricht:
- AddExit(keys, #'func)

BEMERKUNGEN

In func muss man den Spieler selbst in den Zielraum bewegen. Im
Erfolgsfall sollte man einen Wert >0 zurueckgeben, im Fehlerfall einen
Wert <=0.

func bekommt als Parameter einen String mit der gewaehlten
Bewegungsrichtung uebergeben.

BEISPIELE

// ein Ausgang soll nur von Froeschen benutzbar sein:

AddSpecialExit("loch", "lochfkt");
// der gleiche Aufruf, nur anders:
// static int lochfkt(string dir);         // Prototyp
// ...
// AddSpecialExit("loch", #'lochfkt);
// auch identisch zu:
// AddExit("loch", #'lochfkt);

static int lochfkt(string dir) {
  if (!(this_player()->QueryProp(P_FROG))) {
    // Kein Frosch => passt nicht!
    notify_fail("Du bist zu gross!\n");
    return 0;
  }
  // Meldungen werden im move() gleich mitgegeben
  return this_player()->move("/room/loch", M_GO, 0,
               "huepft ins Loch", "huepft herein");
}

SIEHE AUCH

AddExit(), GetExits(),
RemoveExit(), RemoveSpecialExit(),
GuardExit(),
H_HOOK_EXIT_USE, P_EXITS, P_HIDE_EXITS, /std/room/exits.c
ausgaenge

Letzte Aenderung: 22.12.2016, Bugfix