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