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