QueryProp()
FUNKTION:
     mixed QueryProp(string name);

DEFINIERT IN:
     /std/thing/properties.c

ARGUMENTE:
     string name	- abzufragende Property

BESCHREIBUNG:
     Der Datenwert der Property 'name' wird zurueckgegeben.

     Existiert eine F_QUERY_METHOD oder eine _query_'name'()-Methode fuer
     diese Property, so wird diese aufgerufen und ihr 'Value' uebergeben.
     Eine F_QUERY_METHOD hat dabei Vorrang vor _query_'name'(), d.h.
     _query_'name'() wird nach erfolgreicher F_QUERY_METHOD nicht mehr
     gerufen.

     (Diese Methoden nutzen dann Set(), um auf den Datenwert der Property
      'name' zurueckzugreifen. Teilweise werden aber auch interne Variablen
      so oeffentlich gemacht und sind nicht in der ueber Set/Query
      verfuegbaren Property 'name' abgelegt.)

RUeCKGABEWERT:
     Der Datenwert der Property.
     0, falls diese nicht existiert.

BEISPIELE:
     // wie hoch sind die aktuelle LP des Spielers?
     hp = this_player()->QueryProp(P_HP);

SIEHE AUCH:
     Aehnliches:	SetProp(L), Set(L), Query(L)
     Generell:		SetProperties(L), QueryProperties(L)
     Konzept:		properties, /std/thing/properties.c
     Sonstiges:		P_AUTOLOADOBJ

15.Dez 2004 Gloinson
