
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
