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