Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc/lfun/AddExit

AddExit()
*********


FUNKTION
========

   void AddExit(string|string* cmd, closure|string dest);


DEFINIERT IN
============

   /std/room/exits


ARGUMENTE
=========

   string/string* cmd
        die Richtung(en), in die der Ausgang fuehrt
   string/closure dest
        das Ziel des Ausgangs mit Text/Closure


BESCHREIBUNG
============

   Es wird ein Ausgang in die Richtung(en) cmd eingefuegt. Die Art des
   Ausgangs haengt ab von dest:

   - ein String:
     - mit einem Dateinamen:
       Der Ausgang fuehrt in den Raum, den der Dateiname bezeichnet.
     - der Form "#dateiname"
       Der Ausgang fuehrt in den Raum, den der Dateiname bezeichnet,
       bei der Benutzung wird jedoch statt " geht nach "
       " geht nach " ausgegeben.
   - eine Closure:
     Die Closure wird bei Nutzung des Ausgangs aufgerufen. Das entspricht
     eine SpecialExit - in der gerufenen Funktion muss man den Spieler
     selbst in den Zielraum bewegen.
     Gegebenenfalls kann das durch AddCmd() ersetzt werden.


BEMERKUNGEN
===========

   Man kann fuer den Dateinamen des Zielraumes auch einen relativen Pfad
   angeben. Die Auswertung erfolgt nach folgendem Schema:
   - "./"
     Es wird ein Zielraum relativ zum gleichen Verzeichnis wie dieser
     Raum angesprochen.
   - "../"
     Es wird ein Zielraum relativ zur Verzeichnisebene ueber der
     dieses Raumes angesprochen (analog mit mehrerern "../..")

   Mittels P_HIDE_EXITS kann man Ausgaenge verstecken.

   Bei der Benutzung eines Ausgangs wird der Hook H_HOOK_EXIT_USE
   ausgeloest.


BEISPIELE
=========

   ### normale Ausgaenge ###
   // Beim Kommando "sueden" kommt: " geht nach Sueden."
   AddExit("sueden", "/gilden/abenteurer");

   // Beim Kommando "sueden" kommt: " geht in die Gilde."
   AddExit("sueden", "in die Gilde#/gilden/abenteurer");

   ### Ausgaenge mit relativen Pfaden ###
   // Der Name des Raumes sei "/d/inseln/wargon/hafen1"
   // Dieser Ausgang geht nach "/d/inseln/wargon/kneipe":
   AddExit("norden", "./kneipe" );

   // Und dieser nach "/d/inseln/anthea/anlege":
   AddExit("sueden", "../anthea/anlege" );

   ### dynamische Ausgaenge ###
   // ein Ausgang soll nur von Froeschen benutzbar sein:

   static int lochfkt(string dir);            // Prototyp
   ...
   AddExit("loch", #'lochfkt);
   // auch identisch zu:
   // AddSpecialExit("loch", #'lochfkt); [eine Closure] oder
   // AddSpecialExit("loch", "lochfkt"); [ein Funktionsname]

   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
==========


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

Letzte Aenderung: 22.12.2016, Bugfix


zurück zur Übersicht

YOUTUBE | FACEBOOK | TWITTER | DISCORD | FEEDBACK | IMPRESSUM | DATENSCHUTZ 1992–2023 © MorgenGrauen.