blob: 7fa975dbd3bfa8d1c5be3e118b383271e2e0b0fa [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
MG Mud User88f12472016-06-24 23:31:02 +02002InformDefend()
Zesstra953f9972017-02-18 15:37:36 +01003**************
MG Mud User88f12472016-06-24 23:31:02 +02004
MG Mud User88f12472016-06-24 23:31:02 +02005
Zesstra953f9972017-02-18 15:37:36 +01006FUNKTION
7========
MG Mud User88f12472016-06-24 23:31:02 +02008
Zesstra953f9972017-02-18 15:37:36 +01009 void InformDefend(object enemy);
MG Mud User88f12472016-06-24 23:31:02 +020010
MG Mud User88f12472016-06-24 23:31:02 +020011
Zesstra953f9972017-02-18 15:37:36 +010012DEFINIERT IN
13============
MG Mud User88f12472016-06-24 23:31:02 +020014
Zesstra953f9972017-02-18 15:37:36 +010015 /std/living/combat.c
MG Mud User88f12472016-06-24 23:31:02 +020016
Zesstra953f9972017-02-18 15:37:36 +010017
18ARGUMENTE
19=========
20
21 enemy
Zesstraa178b882025-06-20 16:49:42 +020022 Der Feind, der ein zu verteidigendes Lebewesen angegriffen hat.
Zesstra953f9972017-02-18 15:37:36 +010023
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
Zesstraa178b882025-06-20 16:49:42 +020031 selben Umgebung befinden. Zumeist wird es sich bei den Objekten
32 natuerlich ebenfalls um andere Lebewesen handeln, die das
33 Lebewesen, bei dem sie angemeldet sind, verteidigen sollen. Bei
34 einem Angriff auf das Lebewesen werden alle Objekte per Aufruf von
35 InformDefend() darueber informiert, wobei der Angreifer als
36 Parameter uebergeben wird. Standardmaessig ist diese Funktion in
37 Lebewesen bereits definiert, wobei der Skill SK_INFORM_DEFEND,
38 sofern vorhanden, aufgerufen wird.
Zesstra953f9972017-02-18 15:37:36 +010039
40
41BEISPIEL
42========
43
44 Sehr beliebt sind in Gilden NPCs, die den Beschwoerer begleiten und
45 verteidigen, z.B. beschworene Daemonen:
Zesstraa178b882025-06-20 16:49:42 +020046
47 inherit "/std/npc";
48
49 #include <properties.h>
50
51 object owner;
52
53 protected void create()
54 {
55 ::create();
56 SetProp(P_NAME,"Daemon");
57 ...
58 }
59
Zesstra953f9972017-02-18 15:37:36 +010060 // nach Clonen des Daemons folgende Funktion mit Beschwoerer als
61 // Parameter aufrufen
Zesstraa178b882025-06-20 16:49:42 +020062
63 void Identify(object caster)
64 {
65 if(!objectp(caster))
66 call_out(#'remove,0);
67 owner=caster;
68 owner->AddDefender(this_object());
69 }
70
Zesstra953f9972017-02-18 15:37:36 +010071 // folgende Funktion wird automatisch aufgerufen, wenn der
72 // Beschwoerer angegriffen wird
Zesstraa178b882025-06-20 16:49:42 +020073
74 public void InformDefend(object enemy)
75 {
76 if(!IsEnemy(enemy)&&enemy!=owner)
77 Kill(enemy);
78 }
79
Zesstra953f9972017-02-18 15:37:36 +010080 Soll der Daemon sich auch in ein Team einordnen, in welchem sich der
81 Beschwoerer eventuell befindet, so ist zusaetzlich AssocMember() in
82 diesem Beschwoerer aufzurufen, wobei der Daemon als Parameter
83 uebergeben wird.
84
85
86SIEHE AUCH
87==========
88
Zesstraa178b882025-06-20 16:49:42 +020089 AddDefender(), RemoveDefender(), QueryDefenders(),
90 QueryPresentDefenders(), QueryNearDefenders(), DefendOther(),
91 *../props/P_DEFENDER*, /std/living/combat.c
Zesstra953f9972017-02-18 15:37:36 +010092
Zesstraa178b882025-06-20 16:49:42 +020093Letzte Aenderung: 28.10.2022, Bugfix