blob: 7128df6e686fbf8dc219d8b0fd8dc0a4f10dafb5 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
MG Mud User88f12472016-06-24 23:31:02 +02002P_GUARD
Zesstra953f9972017-02-18 15:37:36 +01003*******
MG Mud User88f12472016-06-24 23:31:02 +02004
5
Zesstra953f9972017-02-18 15:37:36 +01006NAME
7====
8
9 P_GUARD "guard"
10
11
12DEFINIERT IN
13============
14
15 /sys/guard.h
16
17
18BESCHREIBUNG
19============
20
21 Diese Property gibt an, ob ein NPC aus einem Raum entfernt werden darf
22 oder nicht. Abgefragt werden muss dies von den Items oder Spells, die
23 den NPC zu einer Bewegung zwingen wollen. Es wird nicht automatisch
24 darauf geachtet!
25
26 Entscheidend hierbei ist ein in der Property enthaltene (ganzzahliger)
27 Zahlenwert zwischen 0 und 100, der hierbei den Grad der
28 'Bewachungsstaerke' eines NPCs angibt. Bei 0 laesst sich das Lebewesen
29 immer zu einer Bewegung ueberreden, bei 100 ueberhaupt nicht. Dazwischen
30 gibt es die Wahrscheinlichkeit dafuer an.
31
32
33BEMERKUNGEN
34===========
35
36 - alle von /std/npc abgeleiteten NPCs haben standardmaessig P_GUARD
37 auf 100 gesetzt, sind also nicht fortfuehrbar
38 - bei der Erzeugung von NPCs mit P_GUARD < 100 AddItem() mit dem
39 Parameter REFRESH_MOVE_HOME verwenden, damit sie bei einem Raumreset
40 gegebenenfalls an ihren Ausgangsort zurueckkehren.
41 - gildenspezifische weitere Abfragen auf Level oAe bitte bei Gilden-
42 magiern erfragen
43
44
45BEISPIELE
46=========
47
48 // ein Test
49 if(random(100)<=liv->QueryProp(P_GUARD))
50 cannotMoveNPC(); // NPC darf nicht bewegt werden!
51 else
52 moveNPC(); // NPC darf bewegt werden
53
54 // ein wegfuehrbarer NPC
55 void create() {
56 ::create();
57 ...
58 SetProp(P_GUARD,50);
59 ...
60 }
61 // mit 50% Wahrscheinlichkeit (pro Versuch) laesst sich der NPC nun
62 // fortfuehren
63
64
65SIEHE AUCH
66==========
67
68 AddItem()
MG Mud User88f12472016-06-24 23:31:02 +020069
7013.April 2004 Gloinson