FindBestWeapon()
****************


FUNKTION
========

   varargs object FindBestWeapon(mixed type, int maxmon, int maxw, int hands,
                                 int minwc, mixed restr)


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

   /std/room/shop.c


ARGUMENTE
=========

   type   - gewuenschter Waffentyp / Waffentypen
   maxmon - Geld das ausgegeben werden darf
   maxw   - Maximales Gewicht
   hands  - Anzahl Haende, die die Waffe belegen darf
   minwc  - minimale gewuenschte Waffenklasse
   restr  - zusaetzliches Argument fuer CheckFindRestrictions()


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

   Sucht die beste Waffe, die der Laden verkaufen kann.


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

   Die beste Waffe :-)


BEMERKUNG
=========

   Die Qualitaet der Waffe wird mit EvalWeapon() bestimmt.
   Haben zwei Waffen die gleiche Qualitaet, wird die preiswertere genommen.


BEISPIEL
========

   FindBestWeapon(WT_SWORD,5000,1)
   Bestes einhaendiges Schwert unter 5000 Muenzen.


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

   FindBestArmours(), CheckFindRestrictions(), EvalWeapon()
