Lpc Manpages

TakeFlaw()

FUNKTION:
     void TakeFlaw();

DEFINIERT IN:
     /std/armour/combat.c,
     /std/weapon/combat.c

ARGUMENTE:
     keine

BESCHREIBUNG:
     Diese Funktion wird in Waffen und Ruestungen waehrend des Kampfes
     aufgerufen. In einer Waffe erfolgt der Aufruf bei jedem Schlag mit
     dieser Waffe, bei Ruestungen wird TakeFlaw() in einer zufaellig
     ausgewaehlten getragenen Ruestung aufgerufen.

     Soweit man die Funktion nicht ueberlaedt, bewirkt sie das Erhoehen
     eines Zaehlers, der mit QueryFlaw() abgefragt werden kann. Wenn die
     Property P_QUALITY_DECAY auf einen Wert > 0 gesetzt ist, wird jedes-
     mal, wenn der Zaehler ein Vielfaches des Wertes erreicht, die Waffen-
     oder Ruestungsklasse um 1 reduziert und gleichzeitig die Property
     P_DAMAGE um 1 erhoeht.

RUECKGABEWERT:
     keiner
     
BEISPIELE:
     Eine Waffe, deren Waffenklasse alle 20 Schlaege um 1 abnimmt:
     
     inherit "std/weapon";

     #include <properties.h>
     #include <combat.h>

     create()
     {
       /* Das Uebliche... */
       
       SetProp(P_QUALITY_DECAY, 20);
     }

     Oder 'per Hand':

     inherit "std/weapon";

     #include <properties.h>
     #include <combat.h>

     create()
     {
       /* Das Uebliche... */
     }

     TakeFlaw()
     {
       int flaw, wc;

       /* erst mal den Zaehler erhoehen... */
       ::TakeFlaw();

       /* jetzt den aktuellen Zaehlerstand abfragen */
       flaw = QueryFlaw()[0];

       /* Abzug nur jeden 20. Schlag */
       if (!(flaw % 20)) {
         wc = QueryProp(P_WC);

         /* eine minimale WC von 1 soll garantiert bleiben... */
         if (wc > 1) {

           /* Waffenklasse runter... */
           SetProp(P_WC, wc-1);

           /* P_DAMAGED setzen, damit die Waffe auch noch */
           /* repariert werden kann...                    */
           SetProp(P_DAMAGED, QueryProp(P_DAMAGED)+1);
         }
       }
     }
     
SIEHE AUCH:
     QueryFlaw(), P_QUALITY_DECAY, P_DAMAGED, /std/armour/combat.c,
     /std/weapon/combat.c