blob: f0386f2044b07efa27f3870b23a37dd8ffe6cd12 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
MG Mud User88f12472016-06-24 23:31:02 +02002DefendOther()
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 mixed DefendOther(int dam,mixed dam_type,mixed spell,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
MG Mud User88f12472016-06-24 23:31:02 +020017
Zesstra953f9972017-02-18 15:37:36 +010018ARGUMENTE
19=========
20
21 dam
22 Der Schaden, der voraussichtlich beim zu verteidigenden Lebewesen
23 verursacht werden soll.
24 dam_type
25 Der Schadenstyp (oder die Schadenstypen), der beim zu
26 verteidigenden Lebewesen verursacht werden sollen.
27 spell
28 Wenn das zu verteidigende Lebewesen mit Spells angegriffen wurde,
29 so koennte man hier mehr Infos entnehmen.
30 enemy
31 Der Feind, der ein zu verteidigendes Lebewesen angegriffen hat.
32
33
34RUeCKGABEWERT
35=============
36
37 Array mit den Eintraegen der gegebenenfalls veraenderten
38 uebergebenen Parameter:
39 (1) dam [Typ int],
40 (2) dam_type [Typ string*],
41 (3) spell [Typ mapping].
42
43
44BESCHREIBUNG
45============
46
47 Es ist moeglich, dass Objekte Angriffe auf Lebewesen abwehren oder
48 umwandeln, sofern diese Objekte bei dem angegriffenen Lebewesen
49 mittels AddDefender() angemeldet wurden und sich der selben Umgebung
50 befinden.
51 Zumeist wird es sich bei den Objekten natuerlich ebenfalls um
52 andere Lebewesen handeln, die das Lebewesen, bei dem sie angemeldet
53 sind, verteidigen sollen.
54 Bei einem Angriff auf das Lebewesen koennen alle Objekte per Aufruf
55 von DefendOther() in einen Angriff eingreifen, wobei die
56 Schadensstaerke, der Schadenstyp (die Schadenstypen),
57 Zusatzinformationen fuer Angriffsspells und der Angreifer als
58 Parameter uebergeben werden.
59 Desweiteren ist zu beachten, dass bei als physikalisch markierten
60 Angriffen in einem Team nur Verteidiger aus der ersten Reihe
61 beruecksichtigt werden und dass bei einem Angriff zufaellig aus
62 allen moeglichen Verteidigern ausgewaehlt wird.
63 Standardmaessig ist diese Funktion in Lebewesen bereits definiert,
64 wobei der Skill SK_DEFEND_OTHER, sofern vorhanden, aufgerufen wird.
65
66
67BEISPIEL
68========
69
70 Sehr beliebt sind in Gilden NPCs, die den Beschwoerer begleiten und
71 verteidigen, z.B. beschworene Daemonen:
72 inherit "std/npc";
73 include <properties.h>
74 object owner;
75 void create()
76 { ::create();
77 SetProp(P_NAME,"Daemon");
78 ...
79 }
80 // nach Clonen des Daemons folgende Funktion mit Beschwoerer als
81 // Parameter aufrufen
82 Identify(object caster)
83 { if(!objectp(caster))
84 call_out(#'remove,0);
85 owner=caster;
86 owner->AddDefender(this_object());
87 }
88 // der Daemon wehrt jeden Angriff mit Feuer voll ab, man muss zuerst
89 // den Verteidiger umbringen, um den Beschwoerer toeten zu koennen
90 mixed DefendOther(int dam,mixed dam_type,mixed spell,object enemy)
91 { if(sizeof(dam_type)&&member_array(DT_FIRE,dam_type)!=-1)
92 dam=0;
93 return({dam,dam_type,spell});
94 }
95 Soll der Daemon sich auch in ein Team einordnen, in welchem sich der
96 Beschwoerer eventuell befindet, so ist zusaetzlich AssocMember() in
97 diesem Beschwoerer aufzurufen, wobei der Daemon als Parameter
98 uebergeben wird.
99
100
101SIEHE AUCH
102==========
103
104 AddDefender(), RemoveDefender(), InformDefend(), Kill(), IsEnemy(),
105 P_DEFENDERS, /std/living/combat.c, /sys/new_skills.h
106
MG Mud User88f12472016-06-24 23:31:02 +0200107Last modified: Fri Feb 25 14:45:00 2000 by Paracelsus