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
  1. Oktober 2013, Arathorn.