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