blob: 822fdec9778335b7321648a45cb369ba5a82c856 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001give_notify()
Zesstra953f9972017-02-18 15:37:36 +01002*************
MG Mud User88f12472016-06-24 23:31:02 +02003
MG Mud User88f12472016-06-24 23:31:02 +02004
Zesstra953f9972017-02-18 15:37:36 +01005FUNKTION
6========
MG Mud User88f12472016-06-24 23:31:02 +02007
Zesstra953f9972017-02-18 15:37:36 +01008 void give_notify(object obj);
MG Mud User88f12472016-06-24 23:31:02 +02009
MG Mud User88f12472016-06-24 23:31:02 +020010
Zesstra953f9972017-02-18 15:37:36 +010011DEFINIERT IN
12============
MG Mud User88f12472016-06-24 23:31:02 +020013
Zesstra953f9972017-02-18 15:37:36 +010014 /std/npc/put_and_get.c
MG Mud User88f12472016-06-24 23:31:02 +020015
MG Mud User88f12472016-06-24 23:31:02 +020016
Zesstra953f9972017-02-18 15:37:36 +010017ARGUMENTE
18=========
19
20 obj
21 an den NPC uebergebenes Objekt
22
23
24RUeCKGABEWERT
25=============
26
27 keiner
28
29
30BESCHREIBUNG
31============
32
33 Diese Funktion wird automatisch immer dann aufgerufen, wenn ein
34 Lebewesen (welches kein Spielercharakter ist) ein Objekt uebergeben
35 bekommt. Dies muss jedoch ueber die Funktionalitaet von
36 put_and_get.c geschehen sein, innerhalb von move() wird die Funktion
37 nicht aufgerufen!
38
39
40BEISPIEL
41========
42
43 Oftmals will man in Quests erreichen, dass einem NPC ein bestimmtes
44 Item als Beweis der Erfuellung einer bestimmten Aufgabe ueberbracht
45 wird. Folgendermasse kann dies realisiert werden:
46 void create() {
47 ::create();
48 ...
49 SetProp(P_REJECT,({REJECT_GIVE,
50 Name(WER)+" sagt: Das brauche ich nicht!\n"}));
51 ...
52 }
53
54 void quest_ok(object obj) { ...
55 // Vernichtung des Questobjektes und Questtexte
56 // Questbelohnung und Questanerkennung
57 }
58
59 void give_notify(object obj) {
60 if(obj->id("\nquestitem")) // Questitem bekommen?
61 quest_ok(obj);
62 else
63 ::give_notify(obj); // P_REJECT soll sonst greifen
64 }
65 Der Aufruf von ::give_notify() stellt sicher, dass ein Objekt
66 zurueckgegeben wird, sofern es nicht das gesuchte ist. Erreicht wird
67 dies ueber P_REJECT (siehe Bemerkungen).
68
69
70BEMERKUNGEN
71===========
72
73 Speziell in NPCs ist diese Funktion normalerweise dafuer
74 verantwortlich, dass mittels der Property P_REJECT die Annahme von
75 Objekten verweigert werden kann. Ueberschreibt man sie, so sollte
76 man gegebenenfalls darauf achten, dass diese Standardfunktion
77 ebenfalls aufgerufen wird.
78
79
80SIEHE AUCH
81==========
82
83 P_REJECT, show_notify(),
84 /std/npc/put_and_get.c, /std/living/put_and_get.c
MG Mud User88f12472016-06-24 23:31:02 +020085
8622. Oktober 2013, Arathorn.