blob: fca271b5a61adf62d8c1e17adcce644ea493a57f [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
MG Mud User88f12472016-06-24 23:31:02 +02002StopHuntText()
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 StopHuntText(object arg);
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 arg
22 Der Gegner, welcher nicht mehr bekaempft wird.
23
24
25BESCHREIBUNG
26============
27
28 Mit der Funktion StopHuntFor() kann man ein Lebewesen als Gegner
29 austragen. Dabei erhalten sowohl der Gegner, als auch das Lebewesen,
30 welches (einseitig!) Frieden schliesst, jeweils eine Meldung, sofern
31 man dies nicht mittels eines Flags unterbindet.
32 Es ist nun moeglich, auf diese Meldung Einfluss zu nehmen, indem
33 man die Funktion StopHuntText() ueberschreibt, welche dafuer
34 verantwortlich ist.
35
36
37BEISPIEL
38========
39
40 Ein Lebewesen moechte einen Kampf sofort abbrechen, wenn es von
41 einem Frosch angegriffen wird:
42 int Defend(int dam,mixed dam_type,mixed spell,object enemy)
43 { if(enemy&&enemy->QueryProp(P_FROG))
44 { if(StopHuntFor(enemy))
45 { // wenn Frosch angreifen will, der noch kein Gegner war
46 tell_object(arg,
47 this_object()->Name(WER)+" kaempft nicht mit Dir.\n"
48 +"Wahrscheinlich werden Froesche verschont.\n");
49 tell_object(this_object(),
50 "Der bloede Frosch wollte Dich doch tatsaechlich angreifen.\n");
51 }
52 enemy->StopHuntFor(this_object(),1);
53 return 0;
54 }
55 return::Defend(dam,dam_type,spell,enemy);
56 }
57 // wird nur aufgerufen, wenn der Gegner irgendwann Frosch wurde
58 void StopHuntText(object arg)
59 { tell_object(arg,
60 this_object()->Name(WER)+" jagd Dich nicht mehr.\n"
61 +"Wahrscheinlich werden Froesche verschont.\n");
62 tell_object(this_object(),
63 "Dein Gegner ist doch tatsaechlich ploetzlich Frosch geworden!\n");
64 }
65 Warum braucht man nun das erste StopHuntFor(), wenn doch Gegner erst
66 in ::Defend() eingetragen werden, welches doch gar nicht ausgefuehrt
67 wird, wenn der Gegner ein Frosch ist? Man beachte hierbei, dass der
68 Gegner ja auch waehrend des Kampfes oder waehrend der Feindschaft
69 irgendwann Frosch werden koennte und dann schon Gegner war.
70
71
72SIEHE AUCH
73==========
74
75 StopHuntFor(), SelectEnemy(), QueryEnemies(), IsEnemy()
76
MG Mud User88f12472016-06-24 23:31:02 +020077Last modified: Wed May 26 16:47:51 1999 by Patryn