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