IsGuildMember()
***************


FUNKTION
========

   varargs int IsGuildMember(object pl)


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

   /std/gilden_ob.c


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

   1
      wenn Gildenmitglied

   0
      sonst


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

   Gibt 1 zurueck, wenn der Spieler Gildenmitglied ist, d.h. P_GUILD
   entsprechend den Gildennamen gesetzt ist. Weitere Pruefungen auf
   Properties oder Skills werden nicht vorgenommen.

   Kann fuer Spieleraktionen im Gildenraum benutzt werden. Setzt
   bereits ein _notify_fail() fuer Nichtgildenmitglieder.


BEISPIEL
========

   protected int clown_weihe(string str)
   {
     if(IsGuildMember()) {
       tortenweihe+=getuid(this_player());
       this_player()->ReceiveMsg(
         "Du kniest nieder und empfaengt die Torte des Meisterclown.",
         MT_NOTIFICATION);
       send_room(
         this_object(),
         this_player()->Name()+" kniet nieder und wird wuerdig getortet.",
         MT_LOOK|MT_LISTEN,
         MA_EMOTE, 0, ({this_player()}));
       return 1;
     }
     return 0;
   }


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

   Verwandt:
      GuildName()

   Props:
      P_GUILD
