
P_WORN
******


NAME
====

   P_WORN "worn"


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

   <armour.h>


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

   Mittels dieser Property laesst sich ermitteln, ob eine Ruestung bzw.
   Kleidung derzeit getragen wird und wenn ja, von wem.

   Entweder enthaelt die Property den Wert 0, oder sie enthaelt den
   Traeger der Ruestung / Kleidung (als Objekt).


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

   Diese Property laesst sich nur abfragen!


BEISPIELE
=========

   Eine DefendFunc() koennte dem Traeger der Ruestung wie folgt etwas
   mitteilen:

   // Die Ruestung gibt Schutz gegen Feuer
   int DefendFunc(string *dtyp, mixed spell, object enemy)
   {
     if (member(dtyp, DT_FIRE) != -1) {
       // P_WORN ist auf jeden Fall gesetzt, da sonst die
       // DefendFunc ueberhaupt nicht aufgerufen wuerde!
       tell_object(QueryProp(P_WORN),
         "Die Flammen zuengeln nur leicht ueber die Ruestung.\n");
       return 10;
     }
     return 0;
   }


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

   clothing, /std/clothing.c, armour, /std/armour.c


LETZTE AeNDERUNG
================

15.02.2009, Zesstra
