blob: 010d68e3500d0efd3ae25fce9360402eab0b284c [file] [log] [blame]
give_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.