CheckFindRestrictions()
***********************


FUNKTION
========

   varargs int CheckFindRestrictions(object ob, mixed restr, closure qp)


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

   /std/room/shop.c


ARGUMENTE
=========

   ob     - Objekt
   restr  - zusaetzliches Argument
   qp     - symbol_function("QueryProp",ob)


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

   Funktion, die FindBestWeapon / FindBestArmours einschraenkt.
   Wird in Wert ungleich 0 zurueckgeliefert, so wird das Objekt
   nicht genommen.


RUECKGABEWERT
=============

   Normalerweise 0


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

   FindBestWeapon(), FindBestArmours()
