P_GUILD_RESTRICTIONS
====================

NAME
----
::

    P_GUILD_RESTRICTIONS        "guild_rest"                  

DEFINIERT IN
------------
::

    /sys/new_skills.h

BESCHREIBUNG
------------
::

    Diese Gildenproperty enthaelt ein Mapping mit den
    Eintrittsbeschraenkungen fuer die jeweilige Gilde.

BEMERKUNGEN
-----------
::

    Im allgemeinen sollte das Mapping mit den Eintrittsbeschraenkungen
    mit den Beschraenkungen fuer Level 1 im Mapping von P_GUILD_LEVELS
    uebereinstimmen.

BEISPIELE
---------
::

    Ein paar moegliche Abfragen waeren folgende:
    string check(object pl);

    SetProp(P_GUILD_RESTRICTIONS,
            ([P_LEVEL:3,
              P_QP:100,
              SR_FUN:#'check]));

    string check(object pl) {
      if(pl->QueryProp(P_MALE))
        return 0;
      return "Fuer Frauen ist das nichts!\n";
    }

SIEHE AUCH
----------
::

    Gildenfkt.:
    * Ein/Austritt: beitreten, bei_oder_aus_treten, austreten
    * Sonstiges:    P_GUILD_LEVELS
    Sonstiges:      /std/restriction_checker.c

3. Okt 2011 Gloinson

