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 <properties.h>
#include <sensitive.h>
#include <combat.h>
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