P_GUARD
*******


NAME
====

   P_GUARD                            "guard"


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

   /sys/guard.h


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

   Diese Property gibt an, ob ein NPC aus einem Raum entfernt werden darf
   oder nicht. Abgefragt werden muss dies von den Items oder Spells, die
   den NPC zu einer Bewegung zwingen wollen. Es wird nicht automatisch
   darauf geachtet!

   Entscheidend hierbei ist ein in der Property enthaltene (ganzzahliger)
   Zahlenwert zwischen 0 und 100, der hierbei den Grad der
   'Bewachungsstaerke' eines NPCs angibt. Bei 0 laesst sich das Lebewesen
   immer zu einer Bewegung ueberreden, bei 100 ueberhaupt nicht. Dazwischen
   gibt es die Wahrscheinlichkeit dafuer an.


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

   - alle von /std/npc abgeleiteten NPCs haben standardmaessig P_GUARD
     auf 100 gesetzt, sind also nicht fortfuehrbar
   - bei der Erzeugung von NPCs mit P_GUARD < 100 AddItem() mit dem
     Parameter REFRESH_MOVE_HOME verwenden, damit sie bei einem Raumreset
     gegebenenfalls an ihren Ausgangsort zurueckkehren.
   - gildenspezifische weitere Abfragen auf Level oAe bitte bei Gilden-
     magiern erfragen


BEISPIELE
=========

   // ein Test
   if(random(100)<=liv->QueryProp(P_GUARD))
    cannotMoveNPC(); // NPC darf nicht bewegt werden!
   else
    moveNPC();       // NPC darf bewegt werden

   // ein wegfuehrbarer NPC
   void create() {
    ::create();
    ...
    SetProp(P_GUARD,50);
    ...
   }
   // mit 50% Wahrscheinlichkeit (pro Versuch) laesst sich der NPC nun
   // fortfuehren


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

   AddItem()

13.April 2004 Gloinson
