QueryFlaw()
===========

FUNKTION
--------
::

     mixed *QueryFlaw();

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

     /std/armour/combat.c,
     /std/weapon/combat.c

ARGUMENTE
---------
::

     keine

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

     QueryFlaw() liefert Informationen ueber den Grad der Abnutzung der
     Waffe bzw. Ruestung. Der Zustand wird als Array mit der Zahl der
     TakeFlaw()-Aufrufe und dem Datum des ersten TakeFlaw()-Aufrufs
     zurueckgegeben.

RUeCKGABEWERT
-------------
::

     Ein Array mit drei Elementen:
       1. der aktuelle Zaehlerstand
       2. Zeit der ersten Benutzung
       3. die Zeit der ersten Benutzung als String

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

     Den aktuellen Abnutzungsgrad einer Ruestung kann man sich wie folgt
     anzeigen lassen:

     mixed *flaw;

     flaw = ruestung->QueryFlaw();

     printf("Zaehlerstand: %d, erster Schlag: %s\n", flaw[0], flaw[2]);
     // oder analog:
     printf("Zaehlerstand: %d, erster Schlag: %s\n", flaw[0], dtime(flaw[1]));

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

     TakeFlaw(), /std/armour/combat.c, /std/weapon/combat.c


Last modified: Wed May 8 10:22:32 1996 by Wargon

