Morgengrauner Dokumentation
Dateipfad: /home/mud/mudlib/doc/lfun/give_notifygive_notify()
*************
FUNKTION
========
void give_notify(object obj);
DEFINIERT IN
============
/std/npc/put_and_get.c
ARGUMENTE
=========
obj
an den NPC uebergebenes Objekt
RUeCKGABEWERT
=============
keiner
BESCHREIBUNG
============
Diese Funktion wird automatisch immer dann aufgerufen, wenn ein
Lebewesen (welches kein Spielercharakter ist) ein Objekt uebergeben
bekommt. Dies muss jedoch ueber die Funktionalitaet von
put_and_get.c geschehen sein, innerhalb von move() wird die Funktion
nicht aufgerufen!
BEISPIEL
========
Oftmals will man in Quests erreichen, dass einem NPC ein bestimmtes
Item als Beweis der Erfuellung einer bestimmten Aufgabe ueberbracht
wird. Folgendermasse kann dies realisiert werden:
void create() {
::create();
...
SetProp(P_REJECT,({REJECT_GIVE,
Name(WER)+" sagt: Das brauche ich nicht!\n"}));
...
}
void quest_ok(object obj) { ...
// Vernichtung des Questobjektes und Questtexte
// Questbelohnung und Questanerkennung
}
void give_notify(object obj) {
if(obj->id("\nquestitem")) // Questitem bekommen?
quest_ok(obj);
else
::give_notify(obj); // P_REJECT soll sonst greifen
}
Der Aufruf von ::give_notify() stellt sicher, dass ein Objekt
zurueckgegeben wird, sofern es nicht das gesuchte ist. Erreicht wird
dies ueber P_REJECT (siehe Bemerkungen).
BEMERKUNGEN
===========
Speziell in NPCs ist diese Funktion normalerweise dafuer
verantwortlich, dass mittels der Property P_REJECT die Annahme von
Objekten verweigert werden kann. Ueberschreibt man sie, so sollte
man gegebenenfalls darauf achten, dass diese Standardfunktion
ebenfalls aufgerufen wird.
SIEHE AUCH
==========
P_REJECT, show_notify(),
/std/npc/put_and_get.c, /std/living/put_and_get.c
22. Oktober 2013, Arathorn.
zurück zur Übersicht