blob: 25a5ed1f1e8e7d682b22cd4e023c0a73b16c11b0 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
MG Mud User88f12472016-06-24 23:31:02 +02002P_UNIT_DECAY_FLAGS
Zesstra953f9972017-02-18 15:37:36 +01003******************
MG Mud User88f12472016-06-24 23:31:02 +02004
MG Mud User88f12472016-06-24 23:31:02 +02005
Zesstra953f9972017-02-18 15:37:36 +01006NAME
7====
MG Mud User88f12472016-06-24 23:31:02 +02008
Zesstra953f9972017-02-18 15:37:36 +01009 P_UNIT_DECAY_FLAGS "unit_decay_flags"
MG Mud User88f12472016-06-24 23:31:02 +020010
MG Mud User88f12472016-06-24 23:31:02 +020011
Zesstra953f9972017-02-18 15:37:36 +010012DEFINIERT IN
13============
MG Mud User88f12472016-06-24 23:31:02 +020014
Zesstra953f9972017-02-18 15:37:36 +010015 /sys/unit.h
MG Mud User88f12472016-06-24 23:31:02 +020016
MG Mud User88f12472016-06-24 23:31:02 +020017
Zesstra953f9972017-02-18 15:37:36 +010018BESCHREIBUNG
19============
MG Mud User88f12472016-06-24 23:31:02 +020020
Zesstra953f9972017-02-18 15:37:36 +010021 Mit dieser Prop kann das Zerfallsverhalten gesteuert werden, entweder
22 fuer alle Clones durch Setzen in der Blueprint oder fuer einzelne Clones.
23
24 In dieser Prop koennen momentan 4 Flags gesetzt werden:
25 - NO_DECAY:
26 Zerfall ist abgeschaltet.
27 - NO_DECAY_UNTIL_MOVE:
28 Der Zerfall ist solange ausgesetzt, bis dieses Objekt in ein anderes
29 Env bewegt wird. Setzt also ein NPC beim AddItem() diese Prop,
30 zerfaellt seine Unit nicht, bis sie bewegt wurde (Leiche, Spieler
31 etc.). Hierbei zaehlt das move() nicht, wenn das Objekt noch kein
32 Env hatte, es zaehlen nur Moves von einem Env in ein anderes Env.
33 Dieses Flag sollte nur in Clones gesetzt werden.
34 - INACCURATE_DECAY
35 Sollen z.b. 45.34 Einheiten zerfallen, wird der Rest von 0.34
36 normalerweise als Wahrscheinlichkeit aufgefasst, dass eine
37 zusaetzliche Einheit zerfaellt. Dieses Flag sorgt dafuer, dass
38 dieser Rest weggeworfen wird und einfach 45 Einheiten zerfallen.
39 Gleichzeitig wird bei diesem Flag aber _immer min_ 1 Einheit
40 zerstoert!
41 - ABSOLUTE_DECAY
42 P_UNIT_DECAY_QUOTA wird nicht als prozentualer Anteil aufgefasst,
43 sondern als absolute Zahl, d.h. es zerfallen immer einfach
44 P_UNIT_DECAY_QUOTA Einheiten.
45
46 Diese Flags koennen z.B. genutzt werden, den Zerfall fuer einzelne
47 Objekte temporaer oder dauerhaft abzuschalten, auch wenn alle anderen
48 Clones weiterzerfallen.
49
50 Diese Prop kann in der Blueprint gesetzt werden. In diesem Fall wird
51 allerdings NO_DECAY_UNTIL_MOVE ignoriert, weil die BP ja nie bewegt
52 wuerde. NO_DECAY in der BP schaltet den Zerfallsprozess (temporaer) fuer
53 alle Clones aus. Ist nie ein Zerfall gewuenscht, sollte in der Blueprint
54 aber besser P_UNIT_DECAY_INTERVAL auf 0 gesetzt werden!
55
56 Ist die Prop in einem einzelnen Clone nicht explizit gesetzt,
57 liefert ein klon->QueryProp(P_UNIT_DECAY_FLAGS) den in der Blueprint
58 eingestellten Wert zurueck.
59
60
61BEMERKUNGEN
62===========
63
64 * Setzt man diese Prop in einem Clone auf 0, wird der Wert aus der
65 Blueprint zurueckgeben. Hierbei wird allerdings ein NO_DECAY_UNTIL_MOVE
66 ausgefiltert, da dies den Zerfall fuer alle Objekte dauerhaft stoppen
67 wuerde, weil BPs nicht bewegt werden.
68 * Die Flags koennen "verodert" werden:
69 SetProp(P_UNIT_DECAY_FLAGS, NO_DECAY_UNTIL_MOVE | ABSOLUTE_DECAY);
70
71
72BEISPIEL
73========
74
75 // Dieser NPC hat tolle Pfeile, die sollen aber nicht zerfallen, solange
76 // sie im Inventar des NPCs sind:
77 AddItem("/d/tolleregion/tollermagier/obj/pfeile", REFRESH_NONE,
78 ([ P_AMOUNT: 50+random(50),
79 P_UNIT_DECAY_FLAGS: NO_DECAY_UNTIL_MOVE ]) );
80
81
82SIEHE AUCH
83==========
84
85 unit
86 P_UNIT_DECAY_INTERVAL, P_UNIT_DECAY_QUOTA, P_UNIT_DECAY_MIN
87 DoDecay, DoDecayMessage
88 /std/unit.c
MG Mud User88f12472016-06-24 23:31:02 +020089
9014.10.2007, Zesstra