trigger_sensitive_attack() ========================== FUNKTION -------- :: varargs void trigger_sensitive_attack(object enemy, string key, int dam, mixed spell, mixed *options); DEFINIERT IN ------------ :: eigenen sensitiven Objekten, wird aufgerufen von /std/living/inventory.c ARGUMENTE --------- :: enemy Der Gegner, der die Aktion ausgeloest hat. key Der ausloesende Schadenstyp. dam Der angerichtete Schaden. spell Wie bei Defend(). options Array mit den in P_SENSITIVE angegebenen Optionen fuer diese Aktion. BESCHREIBUNG ------------ :: Wenn der bei einem Angriff zugefuegte Schaden den in P_SENSITIVE angegebenen Grenzwert uebersteigt sowie der als Schluessel angegebene Schadenstyp in den Schaedenstypen des Angriffes vorkommt, wird diese Funktion aufgerufen und kann entsprechend reagieren. RUeCKGABEWERT ------------- :: keiner BEISPIELE --------- :: Eine Fackel, die sich bei Feuerattacken selbst entzuendet und bei Wasserattacken verloescht, koennte man wie folgt implementieren: inherit "/std/lightsource.c" #include #include #include create() { ::create(); SetProp(...); // die ueblichen Eigenschaften definieren SetProp(P_SENSITIVE, // Ereignis Key Grenze (keine Optionen) ({ ({ SENSITIVE_ATTACK, DT_FIRE, 100 }), ({ SENSITIVE_ATTACK, DT_WATER, 100 }) }) ); } varargs void trigger_sensitive_attack(object enemy, string key, int dam, mixed spell) { // Es soll nicht verschwiegen werden, dass das Entzuenden und // Loeschen einer Lichtquelle so leider nicht funktioniert... if (key == DT_FIRE && !QueryProp(P_LIGHTED)) { SetProp(P_LIGHTED, 1); tell_object(environment(), "Die Fackel faengt Feuer.\n"); } else if (key == DT_WATER && QueryProp(P_LIGHTED)) { SetProp(P_LIGHTED, 0); tell_object(environment(), "Die Fackel verlischt.\n"); } } SIEHE AUCH ---------- :: trigger_sensitive_inv(), sensitive Objekte Last modified: Sun May 19 15:56:25 1996 by Wargon