
query_prevent_shadow()
**********************

query_prevent_shadow(L)


FUNKTION
========

   varargs int query_prevent_shadow(object shadower)


PARAMETER
=========

   object shadower    - da Objekt, das eine Beschattung beantragt


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

   Diese Methode kann in Objekten definiert werden, die nicht beschattet
   werden wollen oder anhand des Objektes shadower entscheiden wollen ob
   sie beschattet werden wollen.

   Gibt die Funktion 0 zurueck, wird ein Shadow auf das Objekt erlaubt,
   sonst schlaegt es fehl.


BEISPIEL
========

   // generell keine Beschattung
   int query_prevent_shadow(object who) {
    return 1;
   }

   // Beschattung durch offizielle Objekte erlaubt
   int query_prevent_shadow(object who) {
    if(who && !strstr(object_name(who),"/std/player"))
     return 0;
    return 1;
   }


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

   Rechte:         query_allow_shadow(M)
   Generell:       shadow(E), unshadow(E)
   Informationen:  query_shadowing(E)

20. Mai 2004 Gloinson
