blob: 9a920a19dea0431d8e3c144231e7aacecfe07f52 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001Sensitive Objekte
2
3Man kann ein Objekt mit der Property P_SENSITIVE dazu veranlassen, auf
4gewisse Dinge zu reagieren. Wenn diese Property benutzt wird, sollte sie ein
5Array von Arrays enthalten, das so aussieht:
6
7({ ({ ereignis1, key1, grenzwert1 (,Optionen1) }),
8 ({ ereignis2, key2, grenzwert2 (,Optionen2) }),
9 ...
10 ({ ereignisN, keyN, grenzwertN (,OptionenN) }) })
11
12Folgende moegliche Ereignisse sind in <sensitive.h> definiert:
13
14SENSITIVE_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.
29SENSITIVE_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
43SENSITIVE_INVENTORY_TRIGGER - siehe oben
44 Mit diesem Objekt selber geschieht nichts, es loest nur Funktionen in
45 anderen Objekten aus (siehe oben).
46
47In Planung ist noch:
48
49SENSITIVE_ENVIRONMENT_CHANGE (falls im Inventory von Lebewesen)
50
51Die 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----------------------------------------------------------------------------
67Last modified: Wed May 8 10:00:28 1996 by Wargon