Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame^] | 1 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 2 | P_UNIT_DECAY_FLAGS |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame^] | 3 | ****************** |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 4 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 5 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame^] | 6 | NAME |
| 7 | ==== |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 8 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame^] | 9 | P_UNIT_DECAY_FLAGS "unit_decay_flags" |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 10 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 11 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame^] | 12 | DEFINIERT IN |
| 13 | ============ |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 14 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame^] | 15 | /sys/unit.h |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 16 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 17 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame^] | 18 | BESCHREIBUNG |
| 19 | ============ |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 20 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame^] | 21 | 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 | |
| 61 | BEMERKUNGEN |
| 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 | |
| 72 | BEISPIEL |
| 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 | |
| 82 | SIEHE 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 User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 89 | |
| 90 | 14.10.2007, Zesstra |