QueryGuest()
************


FUNKTION
========

   int QueryGuest();


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

   /std/player/base


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

   Auf der uid basierende Hilfsfunktion, um Gaeste zu identifizieren.


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

   1, wenn Spielerobjekt ein Gast ist; 0 sonst


BEISPIELE
=========

   if(this_interactive()->QueryGuest())
   {
     (this_interactive()->ReceiveMsg(
        "Wir bedienen hier nur ordentliche Charaktere.",
        MT_LISTEN, MA_SAY,
        "Der Wirt sagt: ") != MSG_SENSE_BLOCK) ||
     (this_interactive()->ReceiveMsg(
        "Der Wirt gestikuliert dich hinaus.",
        MT_LOOK, MA_LOOK) != MSG_SENSE_BLOCK) ||
     (this_interactive()->ReceiveMsg(
        "Irgendwer stupst dich an. Du sollst wohl gehen.",
        MT_FEEL, MA_FEEL));
     return 1;
   }


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

   getuid()

14. Mai 2015 Gloinson
