MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | Sensitive Objekte |
| 2 | |
| 3 | Man kann ein Objekt mit der Property P_SENSITIVE dazu veranlassen, auf |
| 4 | gewisse Dinge zu reagieren. Wenn diese Property benutzt wird, sollte sie ein |
| 5 | Array von Arrays enthalten, das so aussieht: |
| 6 | |
| 7 | ({ ({ ereignis1, key1, grenzwert1 (,Optionen1) }), |
| 8 | ({ ereignis2, key2, grenzwert2 (,Optionen2) }), |
| 9 | ... |
| 10 | ({ ereignisN, keyN, grenzwertN (,OptionenN) }) }) |
| 11 | |
| 12 | Folgende moegliche Ereignisse sind in <sensitive.h> definiert: |
| 13 | |
| 14 | SENSITIVE_ATTACK - reagiert auf Angriff. |
| 15 | In diesem Fall ist der Key der Schadenstyp und der Grenzwert der |
| 16 | Schaden, ab dem die Funktion trigger_sensitive_attack() in dem Objekt |
| 17 | aufgerufen wird. Diese Funktion bekommt uebergeben: |
| 18 | 1. Den Feind |
| 19 | 2. Den Key (nicht ALLE Schadenstypen) |
| 20 | 3. Den Schaden |
| 21 | 4. Das Argument spell von Defend() |
| 22 | 5. Die Optionen, und zwar alles nach dem Grenzwert als Array. |
| 23 | |
| 24 | Bemerkungen: |
| 25 | o Der Schaden nach Abzug durch Ruestungen und vor Beruecksichtigung |
| 26 | von Resistenz und Koerperschutz ist ausschlaggebend. |
| 27 | o Ein Ereignis kann mit verschiedenen Keys mehrfach angegeben |
| 28 | werden. |
| 29 | SENSITIVE_INVENTORY - reagiert auf bestimmte Objekte im Inventory. |
| 30 | Ein solches Objekt reagiert auf andere Objekte empfindlich, die |
| 31 | sensitiv sind und SENSITIVE_INVENTORY_TRIGGER mit dem gleichen Key und |
| 32 | einem hoeheren Grenzwert ausloesen. |
| 33 | |
| 34 | Es ist dabei egal, welches der beiden Objekte zuerst da war. In einem |
| 35 | solchen Objekt wird dann die Funktion trigger_sensitive_inv() |
| 36 | aufgerufen, und zwar mit folgenden Argumenten: |
| 37 | 1. Das ausloesende Objekt (Das mit Ereignis |
| 38 | SENSITIVE_INVENTORY_TRIGGER) |
| 39 | 2. Der Key |
| 40 | 3. Der Grenzwert des ausloesenden Objekts |
| 41 | 4. Die Optionen des ausloesenden Objekts |
| 42 | 5. Die Optionen des reagierenden Objekts |
| 43 | SENSITIVE_INVENTORY_TRIGGER - siehe oben |
| 44 | Mit diesem Objekt selber geschieht nichts, es loest nur Funktionen in |
| 45 | anderen Objekten aus (siehe oben). |
| 46 | |
| 47 | In Planung ist noch: |
| 48 | |
| 49 | SENSITIVE_ENVIRONMENT_CHANGE (falls im Inventory von Lebewesen) |
| 50 | |
| 51 | Die Einsatzmoeglichkeiten sensitiver Objekte sind vielfaeltig: |
| 52 | |
| 53 | * Dynamit koennte jetzt SENSITIVE_ATTACK mit DT_FIRE und z.B. Grenzwert |
| 54 | 150 haben, die Funktion trigger_sensitive_attack() sollte dann z.B. die |
| 55 | Zuendschnur anzuenden... |
| 56 | * Bei Nitroglycerin entsprechend mit DT_BLUDGEON, einem sehr kleinen |
| 57 | Grenzwert und einer trigger_sensitive_attack()-Funktion, die BUMM |
| 58 | macht... |
| 59 | * Es soll auch Dinge geben, die man besser NICHT gleichzeitig am gleichen |
| 60 | Ort aufbewahren sollte... Fuer solche Dinge sind SENSITIVE_INVENTORY |
| 61 | und SENSITIVE_INVENTORY_TRIGGER da. |
| 62 | * SENSITIVE_ENVIRONMENT_CHANGE ist dafuer vorgesehen, dass Objekte im |
| 63 | Inventory empfindlich auf Tauchen oder Aufenthalt an heissen Orten usw. |
| 64 | reagieren, dies ist jedoch noch in Planung. |
| 65 | |
| 66 | ---------------------------------------------------------------------------- |
| 67 | Last modified: Wed May 8 10:00:28 1996 by Wargon |