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