
show_notify()
*************

give_notify()


FUNKTION
========

   void show_notify(object obj)


DEFINIERT IN
============

   /std/living/put_and_get.c


ARGUMENTE
=========

   obj - dem Lebewesen gezeigtes Objekt


RUeCKGABEWERT
=============

   keiner


BESCHREIBUNG
============

   Diese Funktion wird automatisch immer dann aufgerufen, wenn einem
   Lebewesen (welches kein Spielercharakter ist) ein Objekt gezeigt wird.
   Dies funktioniert nur dann, wenn der Standardbefehl der Spielershell
   verwendet wird ("zeige <name> <gegenstand>"). Selbstgebautes "zeige"
   funktioniert nicht.


BEISPIEL
========

   Oftmals will man in Quests erreichen, dass einem NPC ein bestimmtes
   Item als Beweis der Erfuellung einer bestimmten Aufgabe vorgezeigt
   wird. Folgendermassen kann dies realisiert werden:

   void quest_ok(object obj) { ...
     // z.B. Vernichtung des Questobjektes und Questtexte
     // Questbelohnung und Questanerkennung, etc.
   }

   void show_notify(object obj) {
     if(obj->id("\nquestitem")) // Ist das das geforderte Questobjekt?
       quest_ok(obj);
   }


BEMERKUNGEN
===========

   Da es nur um das Vorzeigen von Gegenstaenden geht, die nicht den
   Besitzer wechseln, sind Mechanismen wie P_REJECT in diesem Fall
   nicht erforderlich.


SIEHE AUCH
==========

   give_notify(), /std/npc/put_and_get.c, /std/living/put_and_get.c

22. Oktober 2013 Arathorn
