GetExits()
**********


FUNKTION
========

   varargs string GetExits(object viewer);


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

   /std/room/exits


ARGUMENTE
=========

   viewer
        Derjenige, der sich die Ausgaenge anschaut.


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

   Es wird eine Liste der fuer viewer sichtbaren Ausgaenge erstellt.


RUeCKGABEWERT
=============

   String mit der Liste der sichtbaren Ausgaenge.


SIEHE AUCH
==========

   AddExit(), 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
