blob: 2a56be3d5f636e9bb2318558c9d07001ff989750 [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001give_notify()
2=============
3
4FUNKTION
5--------
6::
7
8 void give_notify(object obj);
9
10DEFINIERT IN
11------------
12::
13
14 /std/npc/put_and_get.c
15
16ARGUMENTE
17---------
18::
19
20 obj
21 an den NPC uebergebenes Objekt
22
23RUeCKGABEWERT
24-------------
25::
26
27 keiner
28
29BESCHREIBUNG
30------------
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
39BEISPIEL
40--------
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
69BEMERKUNGEN
70-----------
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
79SIEHE AUCH
80----------
81::
82
83 P_REJECT, show_notify(),
84 /std/npc/put_and_get.c, /std/living/put_and_get.c
85
8622. Oktober 2013, Arathorn.
87