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