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