blob: fbc0b123b363354db5885f8990db81698652150c [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001InformDefend()
2==============
3
4FUNKTION
5--------
6::
7
8 void InformDefend(object enemy);
9
10DEFINIERT IN
11------------
12::
13
14 /std/living/combat.c
15
16ARGUMENTE
17---------
18::
19
20 enemy
21 Der Feind, der ein zu verteidigendes Lebewesen angegriffen hat.
22
23BESCHREIBUNG
24------------
25::
26
27 Es ist moeglich, dass Objekte ueber Angriffe auf Lebewesen
28 informiert werden, sofern diese Objekte bei dem angegriffenen
29 Lebewesen mittels AddDefender() angemeldet wurden und sich der
30 selben Umgebung befinden.
31 Zumeist wird es sich bei den Objekten natuerlich ebenfalls um
32 andere Lebewesen handeln, die das Lebewesen, bei dem sie angemeldet
33 sind, verteidigen sollen.
34 Bei einem Angriff auf das Lebewesen werden alle Objekte per Aufruf
35 von InformDefend() darueber informiert, wobei der Angreifer als
36 Parameter uebergeben wird.
37 Standardmaessig ist diese Funktion in Lebewesen bereits definiert,
38 wobei der Skill SK_INFORM_DEFEND, sofern vorhanden, aufgerufen wird.
39
40BEISPIEL
41--------
42::
43
44 Sehr beliebt sind in Gilden NPCs, die den Beschwoerer begleiten und
45 verteidigen, z.B. beschworene Daemonen:
46 inherit "std/npc";
47 include <properties.h>
48 object owner;
49 void create()
50 { ::create();
51 SetProp(P_NAME,"Daemon");
52 ...
53 }
54 // nach Clonen des Daemons folgende Funktion mit Beschwoerer als
55 // Parameter aufrufen
56 Identify(object caster)
57 { if(!objectp(caster))
58 call_out(#'remove,0);
59 owner=caster;
60 owner->AddDefender(this_object());
61 }
62 // folgende Funktion wird automatisch aufgerufen, wenn der
63 // Beschwoerer angegriffen wird
64 void InformDefend(object enemy)
65 { if(!IsEnemy(enemy)&&enemy!=owner)
66 Kill(enemy);
67 }
68 Soll der Daemon sich auch in ein Team einordnen, in welchem sich der
69 Beschwoerer eventuell befindet, so ist zusaetzlich AssocMember() in
70 diesem Beschwoerer aufzurufen, wobei der Daemon als Parameter
71 uebergeben wird.
72
73SIEHE AUCH
74----------
75::
76
77 AddDefender(), RemoveDefender(), DefendOther(), Kill(), IsEnemy(),
78 P_DEFENDERS, /std/living/combat.c, /sys/new_skills.h
79
80
81Last modified: Thu Jul 29 18:48:45 1999 by Patryn
82