Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc/lfun/TakeFlaw

TakeFlaw()
**********


FUNKTION
========

   varargs void TakeFlaw(object enemy); (Waffen)
   varargs void TakeFlaw(string* dam_types,mapping einfos) (Ruestungen)


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.
   Waffen bekommen das Gegnerobjekt uebergeben, Ruestungen die erweiterten
   DefendInfos (s. dort fuer Details). Aufgrund dieser Informationen kann
   man den Schaden, den ein Gegenstand nimmt, flexibler gestalten (z.B. bei
   einer Waffe in Abhaengigkeit von P_BODY des Gegners.)

   Soweit man die Funktion nicht ueberlaedt, bewirkt sie nichts weiter als
   das Erhoehen eines Zaehlers, der mit QueryFlaw() abgefragt werden kann.


RUeCKGABEWERT
=============

   keiner


BEMERKUNGEN
===========

   Die Waffen-/ Ruestungsklasse wird nicht automatisch reduziert! Wenn
   eine Waffe oder Ruestung sich abnutzen soll, muss man TakeFlaw()
   ueberladen und dort entsprechend handeln, oder (fuer einfache
   Faelle) die Property P_QUALITY setzen.


BEISPIELE
=========

   Eine Waffe, deren Waffenklasse alle 20 Schlaege um 1 abnimmt:

   inherit "/std/weapon";

   #include 
   #include 

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

   varargs void TakeFlaw(object enemy) {
     /* erstmal den Zaehler erhoehen... */
     ::TakeFlaw(enemy);

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

     /* Abzug nur jeden 20. Schlag */
     if (!(flaw % 20)) {
       /* So, jetzt fuer den Schaden sorgen. Hierfuer benutzt */
       /* man am sichersten die eingebaute Funktion Damage() */
       Damage(1);
     }
   }

   Dieses einfache Beispiel haette natuerlich auch ueber ein
   SetProp(P_QUALITY,20); im create() realisiert werden koennen.


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


QueryFlaw(), Damage(), DefendInfo, P_QUALITY, /std/armour/combat.c, /std/weapon/combat.c

Last modified: Thu May 22 10:30:10 1997 by Paracelsus


zurück zur Übersicht

YOUTUBE | FACEBOOK | TWITTER | DISCORD | FEEDBACK | IMPRESSUM | DATENSCHUTZ 1992–2023 © MorgenGrauen.